StringUtils.java

1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *      http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
package org.apache.commons.lang3;
18
19
import java.io.UnsupportedEncodingException;
20
import java.nio.charset.Charset;
21
import java.text.Normalizer;
22
import java.util.ArrayList;
23
import java.util.Arrays;
24
import java.util.Iterator;
25
import java.util.List;
26
import java.util.Locale;
27
import java.util.Objects;
28
import java.util.regex.Pattern;
29
30
/**
31
 * <p>Operations on {@link java.lang.String} that are
32
 * {@code null} safe.</p>
33
 *
34
 * <ul>
35
 *  <li><b>IsEmpty/IsBlank</b>
36
 *      - checks if a String contains text</li>
37
 *  <li><b>Trim/Strip</b>
38
 *      - removes leading and trailing whitespace</li>
39
 *  <li><b>Equals/Compare</b>
40
 *      - compares two strings null-safe</li>
41
 *  <li><b>startsWith</b>
42
 *      - check if a String starts with a prefix null-safe</li>
43
 *  <li><b>endsWith</b>
44
 *      - check if a String ends with a suffix null-safe</li>
45
 *  <li><b>IndexOf/LastIndexOf/Contains</b>
46
 *      - null-safe index-of checks
47
 *  <li><b>IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut</b>
48
 *      - index-of any of a set of Strings</li>
49
 *  <li><b>ContainsOnly/ContainsNone/ContainsAny</b>
50
 *      - does String contains only/none/any of these characters</li>
51
 *  <li><b>Substring/Left/Right/Mid</b>
52
 *      - null-safe substring extractions</li>
53
 *  <li><b>SubstringBefore/SubstringAfter/SubstringBetween</b>
54
 *      - substring extraction relative to other strings</li>
55
 *  <li><b>Split/Join</b>
56
 *      - splits a String into an array of substrings and vice versa</li>
57
 *  <li><b>Remove/Delete</b>
58
 *      - removes part of a String</li>
59
 *  <li><b>Replace/Overlay</b>
60
 *      - Searches a String and replaces one String with another</li>
61
 *  <li><b>Chomp/Chop</b>
62
 *      - removes the last part of a String</li>
63
 *  <li><b>AppendIfMissing</b>
64
 *      - appends a suffix to the end of the String if not present</li>
65
 *  <li><b>PrependIfMissing</b>
66
 *      - prepends a prefix to the start of the String if not present</li>
67
 *  <li><b>LeftPad/RightPad/Center/Repeat</b>
68
 *      - pads a String</li>
69
 *  <li><b>UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize</b>
70
 *      - changes the case of a String</li>
71
 *  <li><b>CountMatches</b>
72
 *      - counts the number of occurrences of one String in another</li>
73
 *  <li><b>IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable</b>
74
 *      - checks the characters in a String</li>
75
 *  <li><b>DefaultString</b>
76
 *      - protects against a null input String</li>
77
 *  <li><b>Rotate</b>
78
 *      - rotate (circular shift) a String</li>
79
 *  <li><b>Reverse/ReverseDelimited</b>
80
 *      - reverses a String</li>
81
 *  <li><b>Abbreviate</b>
82
 *      - abbreviates a string using ellipsis or another given String</li>
83
 *  <li><b>Difference</b>
84
 *      - compares Strings and reports on their differences</li>
85
 *  <li><b>LevenshteinDistance</b>
86
 *      - the number of changes needed to change one String into another</li>
87
 * </ul>
88
 *
89
 * <p>The {@code StringUtils} class defines certain words related to
90
 * String handling.</p>
91
 *
92
 * <ul>
93
 *  <li>null - {@code null}</li>
94
 *  <li>empty - a zero-length string ({@code ""})</li>
95
 *  <li>space - the space character ({@code ' '}, char 32)</li>
96
 *  <li>whitespace - the characters defined by {@link Character#isWhitespace(char)}</li>
97
 *  <li>trim - the characters &lt;= 32 as in {@link String#trim()}</li>
98
 * </ul>
99
 *
100
 * <p>{@code StringUtils} handles {@code null} input Strings quietly.
101
 * That is to say that a {@code null} input will return {@code null}.
102
 * Where a {@code boolean} or {@code int} is being returned
103
 * details vary by method.</p>
104
 *
105
 * <p>A side effect of the {@code null} handling is that a
106
 * {@code NullPointerException} should be considered a bug in
107
 * {@code StringUtils}.</p>
108
 *
109
 * <p>Methods in this class give sample code to explain their operation.
110
 * The symbol {@code *} is used to indicate any input including {@code null}.</p>
111
 *
112
 * <p>#ThreadSafe#</p>
113
 * @see java.lang.String
114
 * @since 1.0
115
 */
116
//@Immutable
117
public class StringUtils {
118
    // Performance testing notes (JDK 1.4, Jul03, scolebourne)
119
    // Whitespace:
120
    // Character.isWhitespace() is faster than WHITESPACE.indexOf()
121
    // where WHITESPACE is a string of all whitespace characters
122
    //
123
    // Character access:
124
    // String.charAt(n) versus toCharArray(), then array[n]
125
    // String.charAt(n) is about 15% worse for a 10K string
126
    // They are about equal for a length 50 string
127
    // String.charAt(n) is about 4 times better for a length 3 string
128
    // String.charAt(n) is best bet overall
129
    //
130
    // Append:
131
    // String.concat about twice as fast as StringBuffer.append
132
    // (not sure who tested this)
133
134
    /**
135
     * A String for a space character.
136
     *
137
     * @since 3.2
138
     */
139
    public static final String SPACE = " ";
140
141
    /**
142
     * The empty String {@code ""}.
143
     * @since 2.0
144
     */
145
    public static final String EMPTY = "";
146
147
    /**
148
     * A String for linefeed LF ("\n").
149
     *
150
     * @see <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.6">JLF: Escape Sequences
151
     *      for Character and String Literals</a>
152
     * @since 3.2
153
     */
154
    public static final String LF = "\n";
155
156
    /**
157
     * A String for carriage return CR ("\r").
158
     *
159
     * @see <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.6">JLF: Escape Sequences
160
     *      for Character and String Literals</a>
161
     * @since 3.2
162
     */
163
    public static final String CR = "\r";
164
165
    /**
166
     * Represents a failed index search.
167
     * @since 2.1
168
     */
169
    public static final int INDEX_NOT_FOUND = -1;
170
171
    /**
172
     * <p>The maximum size to which the padding constant(s) can expand.</p>
173
     */
174
    private static final int PAD_LIMIT = 8192;
175
176
    /**
177
     * <p>{@code StringUtils} instances should NOT be constructed in
178
     * standard programming. Instead, the class should be used as
179
     * {@code StringUtils.trim(" foo ");}.</p>
180
     *
181
     * <p>This constructor is public to permit tools that require a JavaBean
182
     * instance to operate.</p>
183
     */
184
    public StringUtils() {
185
        super();
186
    }
187
188
    // Empty checks
189
    //-----------------------------------------------------------------------
190
    /**
191
     * <p>Checks if a CharSequence is empty ("") or null.</p>
192
     *
193
     * <pre>
194
     * StringUtils.isEmpty(null)      = true
195
     * StringUtils.isEmpty("")        = true
196
     * StringUtils.isEmpty(" ")       = false
197
     * StringUtils.isEmpty("bob")     = false
198
     * StringUtils.isEmpty("  bob  ") = false
199
     * </pre>
200
     *
201
     * <p>NOTE: This method changed in Lang version 2.0.
202
     * It no longer trims the CharSequence.
203
     * That functionality is available in isBlank().</p>
204
     *
205
     * @param cs  the CharSequence to check, may be null
206
     * @return {@code true} if the CharSequence is empty or null
207
     * @since 3.0 Changed signature from isEmpty(String) to isEmpty(CharSequence)
208
     */
209
    public static boolean isEmpty(final CharSequence cs) {
210 3 1. isEmpty : negated conditional → KILLED
2. isEmpty : negated conditional → KILLED
3. isEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return cs == null || cs.length() == 0;
211
    }
212
213
    /**
214
     * <p>Checks if a CharSequence is not empty ("") and not null.</p>
215
     *
216
     * <pre>
217
     * StringUtils.isNotEmpty(null)      = false
218
     * StringUtils.isNotEmpty("")        = false
219
     * StringUtils.isNotEmpty(" ")       = true
220
     * StringUtils.isNotEmpty("bob")     = true
221
     * StringUtils.isNotEmpty("  bob  ") = true
222
     * </pre>
223
     *
224
     * @param cs  the CharSequence to check, may be null
225
     * @return {@code true} if the CharSequence is not empty and not null
226
     * @since 3.0 Changed signature from isNotEmpty(String) to isNotEmpty(CharSequence)
227
     */
228
    public static boolean isNotEmpty(final CharSequence cs) {
229 2 1. isNotEmpty : negated conditional → KILLED
2. isNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return !isEmpty(cs);
230
    }
231
       
232
    /**
233
     * <p>Checks if any of the CharSequences are empty ("") or null.</p>
234
     *
235
     * <pre>
236
     * StringUtils.isAnyEmpty(null)             = true
237
     * StringUtils.isAnyEmpty(null, "foo")      = true
238
     * StringUtils.isAnyEmpty("", "bar")        = true
239
     * StringUtils.isAnyEmpty("bob", "")        = true
240
     * StringUtils.isAnyEmpty("  bob  ", null)  = true
241
     * StringUtils.isAnyEmpty(" ", "bar")       = false
242
     * StringUtils.isAnyEmpty("foo", "bar")     = false
243
     * </pre>
244
     *
245
     * @param css  the CharSequences to check, may be null or empty
246
     * @return {@code true} if any of the CharSequences are empty or null
247
     * @since 3.2
248
     */
249
    public static boolean isAnyEmpty(final CharSequence... css) {
250 1 1. isAnyEmpty : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
251 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
252
      }
253 3 1. isAnyEmpty : changed conditional boundary → KILLED
2. isAnyEmpty : Changed increment from 1 to -1 → KILLED
3. isAnyEmpty : negated conditional → KILLED
      for (final CharSequence cs : css){
254 1 1. isAnyEmpty : negated conditional → KILLED
        if (isEmpty(cs)) {
255 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
256
        }
257
      }
258 1 1. isAnyEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
259
    }
260
261
    /**
262
     * <p>Checks if any of the CharSequences are not empty ("") and not null.</p>
263
     *
264
     * <pre>
265
     * StringUtils.isAnyNotEmpty(null)             = false
266
     * StringUtils.isAnyNotEmpty(new String[] {})  = false
267
     * StringUtils.isAnyNotEmpty(null, "foo")      = true
268
     * StringUtils.isAnyNotEmpty("", "bar")        = true
269
     * StringUtils.isAnyNotEmpty("bob", "")        = true
270
     * StringUtils.isAnyNotEmpty("  bob  ", null)  = true
271
     * StringUtils.isAnyNotEmpty(" ", "bar")       = true
272
     * StringUtils.isAnyNotEmpty("foo", "bar")     = true
273
     * </pre>
274
     *
275
     * @param css  the CharSequences to check, may be null or empty
276
     * @return {@code true} if any of the CharSequences are not empty and not null
277
     * @since 3.6
278
     */
279
    public static boolean isAnyNotEmpty(final CharSequence... css) {
280 1 1. isAnyNotEmpty : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
281 1 1. isAnyNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
282
      }
283 3 1. isAnyNotEmpty : changed conditional boundary → KILLED
2. isAnyNotEmpty : Changed increment from 1 to -1 → KILLED
3. isAnyNotEmpty : negated conditional → KILLED
      for (final CharSequence cs : css) {
284 1 1. isAnyNotEmpty : negated conditional → KILLED
        if (isNotEmpty(cs)) {
285 1 1. isAnyNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
286
        }
287
      }
288 1 1. isAnyNotEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
289
    }
290
291
    /**
292
     * <p>Checks if none of the CharSequences are empty ("") or null.</p>
293
     *
294
     * <pre>
295
     * StringUtils.isNoneEmpty(null)             = false
296
     * StringUtils.isNoneEmpty(null, "foo")      = false
297
     * StringUtils.isNoneEmpty("", "bar")        = false
298
     * StringUtils.isNoneEmpty("bob", "")        = false
299
     * StringUtils.isNoneEmpty("  bob  ", null)  = false
300
     * StringUtils.isNoneEmpty(new String[] {})  = false
301
     * StringUtils.isNoneEmpty(" ", "bar")       = true
302
     * StringUtils.isNoneEmpty("foo", "bar")     = true
303
     * </pre>
304
     *
305
     * @param css  the CharSequences to check, may be null or empty
306
     * @return {@code true} if none of the CharSequences are empty or null
307
     * @since 3.2
308
     */
309
    public static boolean isNoneEmpty(final CharSequence... css) {
310 2 1. isNoneEmpty : negated conditional → KILLED
2. isNoneEmpty : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return !isAnyEmpty(css);
311
    }
312
313
    /**
314
     * <p>Checks if a CharSequence is empty (""), null or whitespace only.</p>
315
     * 
316
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
317
     *
318
     * <pre>
319
     * StringUtils.isBlank(null)      = true
320
     * StringUtils.isBlank("")        = true
321
     * StringUtils.isBlank(" ")       = true
322
     * StringUtils.isBlank("bob")     = false
323
     * StringUtils.isBlank("  bob  ") = false
324
     * </pre>
325
     *
326
     * @param cs  the CharSequence to check, may be null
327
     * @return {@code true} if the CharSequence is null, empty or whitespace only
328
     * @since 2.0
329
     * @since 3.0 Changed signature from isBlank(String) to isBlank(CharSequence)
330
     */
331
    public static boolean isBlank(final CharSequence cs) {
332
        int strLen;
333 2 1. isBlank : negated conditional → KILLED
2. isBlank : negated conditional → KILLED
        if (cs == null || (strLen = cs.length()) == 0) {
334 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
335
        }
336 3 1. isBlank : changed conditional boundary → KILLED
2. isBlank : Changed increment from 1 to -1 → KILLED
3. isBlank : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
337 1 1. isBlank : negated conditional → KILLED
            if (Character.isWhitespace(cs.charAt(i)) == false) {
338 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
339
            }
340
        }
341 1 1. isBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
342
    }
343
344
    /**
345
     * <p>Checks if a CharSequence is not empty (""), not null and not whitespace only.</p>
346
     * 
347
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
348
     *
349
     * <pre>
350
     * StringUtils.isNotBlank(null)      = false
351
     * StringUtils.isNotBlank("")        = false
352
     * StringUtils.isNotBlank(" ")       = false
353
     * StringUtils.isNotBlank("bob")     = true
354
     * StringUtils.isNotBlank("  bob  ") = true
355
     * </pre>
356
     *
357
     * @param cs  the CharSequence to check, may be null
358
     * @return {@code true} if the CharSequence is
359
     *  not empty and not null and not whitespace only
360
     * @since 2.0
361
     * @since 3.0 Changed signature from isNotBlank(String) to isNotBlank(CharSequence)
362
     */
363
    public static boolean isNotBlank(final CharSequence cs) {
364 2 1. isNotBlank : negated conditional → KILLED
2. isNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return !isBlank(cs);
365
    }
366
367
    /**
368
     * <p>Checks if any of the CharSequences are empty ("") or null or whitespace only.</p>
369
     * 
370
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
371
     *
372
     * <pre>
373
     * StringUtils.isAnyBlank(null)             = true
374
     * StringUtils.isAnyBlank(null, "foo")      = true
375
     * StringUtils.isAnyBlank(null, null)       = true
376
     * StringUtils.isAnyBlank("", "bar")        = true
377
     * StringUtils.isAnyBlank("bob", "")        = true
378
     * StringUtils.isAnyBlank("  bob  ", null)  = true
379
     * StringUtils.isAnyBlank(" ", "bar")       = true
380
     * StringUtils.isAnyBlank(new String[] {})  = false
381
     * StringUtils.isAnyBlank("foo", "bar")     = false
382
     * </pre>
383
     *
384
     * @param css  the CharSequences to check, may be null or empty
385
     * @return {@code true} if any of the CharSequences are empty or null or whitespace only
386
     * @since 3.2
387
     */
388
    public static boolean isAnyBlank(final CharSequence... css) {
389 1 1. isAnyBlank : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
390 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
391
      }
392 3 1. isAnyBlank : changed conditional boundary → KILLED
2. isAnyBlank : Changed increment from 1 to -1 → KILLED
3. isAnyBlank : negated conditional → KILLED
      for (final CharSequence cs : css){
393 1 1. isAnyBlank : negated conditional → KILLED
        if (isBlank(cs)) {
394 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
395
        }
396
      }
397 1 1. isAnyBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
398
    }
399
400
    /**
401
     * <p>Checks if any of the CharSequences are not empty (""), not null and not whitespace only.</p>
402
     * 
403
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
404
     *
405
     * <pre>
406
     * StringUtils.isAnyNotBlank(null)             = false
407
     * StringUtils.isAnyNotBlank(null, "foo")      = true
408
     * StringUtils.isAnyNotBlank(null, null)       = false
409
     * StringUtils.isAnyNotBlank("", "bar")        = true
410
     * StringUtils.isAnyNotBlank("bob", "")        = true
411
     * StringUtils.isAnyNotBlank("  bob  ", null)  = true
412
     * StringUtils.isAnyNotBlank(" ", "bar")       = true
413
     * StringUtils.isAnyNotBlank("foo", "bar")     = true
414
     * StringUtils.isAnyNotBlank(new String[] {})  = false
415
     * </pre>
416
     *
417
     * @param css  the CharSequences to check, may be null or empty
418
     * @return {@code true} if any of the CharSequences are not empty and not null and not whitespace only
419
     * @since 3.6
420
     */
421
    public static boolean isAnyNotBlank(final CharSequence... css) {
422 1 1. isAnyNotBlank : negated conditional → KILLED
      if (ArrayUtils.isEmpty(css)) {
423 1 1. isAnyNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
424
      }
425 3 1. isAnyNotBlank : changed conditional boundary → KILLED
2. isAnyNotBlank : Changed increment from 1 to -1 → KILLED
3. isAnyNotBlank : negated conditional → KILLED
      for (final CharSequence cs : css) {
426 1 1. isAnyNotBlank : negated conditional → KILLED
        if (isNotBlank(cs)) {
427 1 1. isAnyNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
          return true;
428
        }
429
      }
430 1 1. isAnyNotBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return false;
431
    }
432
433
    /**
434
     * <p>Checks if none of the CharSequences are empty (""), null or whitespace only.</p>
435
     * 
436
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
437
     *
438
     * <pre>
439
     * StringUtils.isNoneBlank(null)             = false
440
     * StringUtils.isNoneBlank(null, "foo")      = false
441
     * StringUtils.isNoneBlank(null, null)       = false
442
     * StringUtils.isNoneBlank("", "bar")        = false
443
     * StringUtils.isNoneBlank("bob", "")        = false
444
     * StringUtils.isNoneBlank("  bob  ", null)  = false
445
     * StringUtils.isNoneBlank(" ", "bar")       = false
446
     * StringUtils.isNoneBlank(new String[] {})  = false
447
     * StringUtils.isNoneBlank("foo", "bar")     = true
448
     * </pre>
449
     *
450
     * @param css  the CharSequences to check, may be null or empty
451
     * @return {@code true} if none of the CharSequences are empty or null or whitespace only
452
     * @since 3.2
453
     */
454
    public static boolean isNoneBlank(final CharSequence... css) {
455 2 1. isNoneBlank : negated conditional → KILLED
2. isNoneBlank : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
      return !isAnyBlank(css);
456
    }
457
458
    // Trim
459
    //-----------------------------------------------------------------------
460
    /**
461
     * <p>Removes control characters (char &lt;= 32) from both
462
     * ends of this String, handling {@code null} by returning
463
     * {@code null}.</p>
464
     *
465
     * <p>The String is trimmed using {@link String#trim()}.
466
     * Trim removes start and end characters &lt;= 32.
467
     * To strip whitespace use {@link #strip(String)}.</p>
468
     *
469
     * <p>To trim your choice of characters, use the
470
     * {@link #strip(String, String)} methods.</p>
471
     *
472
     * <pre>
473
     * StringUtils.trim(null)          = null
474
     * StringUtils.trim("")            = ""
475
     * StringUtils.trim("     ")       = ""
476
     * StringUtils.trim("abc")         = "abc"
477
     * StringUtils.trim("    abc    ") = "abc"
478
     * </pre>
479
     *
480
     * @param str  the String to be trimmed, may be null
481
     * @return the trimmed string, {@code null} if null String input
482
     */
483
    public static String trim(final String str) {
484 2 1. trim : negated conditional → KILLED
2. trim : mutated return of Object value for org/apache/commons/lang3/StringUtils::trim to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? null : str.trim();
485
    }
486
487
    /**
488
     * <p>Removes control characters (char &lt;= 32) from both
489
     * ends of this String returning {@code null} if the String is
490
     * empty ("") after the trim or if it is {@code null}.
491
     *
492
     * <p>The String is trimmed using {@link String#trim()}.
493
     * Trim removes start and end characters &lt;= 32.
494
     * To strip whitespace use {@link #stripToNull(String)}.</p>
495
     *
496
     * <pre>
497
     * StringUtils.trimToNull(null)          = null
498
     * StringUtils.trimToNull("")            = null
499
     * StringUtils.trimToNull("     ")       = null
500
     * StringUtils.trimToNull("abc")         = "abc"
501
     * StringUtils.trimToNull("    abc    ") = "abc"
502
     * </pre>
503
     *
504
     * @param str  the String to be trimmed, may be null
505
     * @return the trimmed String,
506
     *  {@code null} if only chars &lt;= 32, empty or null String input
507
     * @since 2.0
508
     */
509
    public static String trimToNull(final String str) {
510
        final String ts = trim(str);
511 2 1. trimToNull : negated conditional → KILLED
2. trimToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isEmpty(ts) ? null : ts;
512
    }
513
514
    /**
515
     * <p>Removes control characters (char &lt;= 32) from both
516
     * ends of this String returning an empty String ("") if the String
517
     * is empty ("") after the trim or if it is {@code null}.
518
     *
519
     * <p>The String is trimmed using {@link String#trim()}.
520
     * Trim removes start and end characters &lt;= 32.
521
     * To strip whitespace use {@link #stripToEmpty(String)}.</p>
522
     *
523
     * <pre>
524
     * StringUtils.trimToEmpty(null)          = ""
525
     * StringUtils.trimToEmpty("")            = ""
526
     * StringUtils.trimToEmpty("     ")       = ""
527
     * StringUtils.trimToEmpty("abc")         = "abc"
528
     * StringUtils.trimToEmpty("    abc    ") = "abc"
529
     * </pre>
530
     *
531
     * @param str  the String to be trimmed, may be null
532
     * @return the trimmed String, or an empty String if {@code null} input
533
     * @since 2.0
534
     */
535
    public static String trimToEmpty(final String str) {
536 2 1. trimToEmpty : negated conditional → KILLED
2. trimToEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : str.trim();
537
    }
538
539
    /**
540
     * <p>Truncates a String. This will turn
541
     * "Now is the time for all good men" into "Now is the time for".</p>
542
     *
543
     * <p>Specifically:</p>
544
     * <ul>
545
     *   <li>If {@code str} is less than {@code maxWidth} characters
546
     *       long, return it.</li>
547
     *   <li>Else truncate it to {@code substring(str, 0, maxWidth)}.</li>
548
     *   <li>If {@code maxWidth} is less than {@code 0}, throw an
549
     *       {@code IllegalArgumentException}.</li>
550
     *   <li>In no case will it return a String of length greater than
551
     *       {@code maxWidth}.</li>
552
     * </ul>
553
     *
554
     * <pre>
555
     * StringUtils.truncate(null, 0)       = null
556
     * StringUtils.truncate(null, 2)       = null
557
     * StringUtils.truncate("", 4)         = ""
558
     * StringUtils.truncate("abcdefg", 4)  = "abcd"
559
     * StringUtils.truncate("abcdefg", 6)  = "abcdef"
560
     * StringUtils.truncate("abcdefg", 7)  = "abcdefg"
561
     * StringUtils.truncate("abcdefg", 8)  = "abcdefg"
562
     * StringUtils.truncate("abcdefg", -1) = throws an IllegalArgumentException
563
     * </pre>
564
     *
565
     * @param str  the String to truncate, may be null
566
     * @param maxWidth  maximum length of result String, must be positive
567
     * @return truncated String, {@code null} if null String input
568
     * @since 3.5
569
     */
570
    public static String truncate(final String str, final int maxWidth) {
571 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return truncate(str, 0, maxWidth);
572
    }
573
574
    /**
575
     * <p>Truncates a String. This will turn
576
     * "Now is the time for all good men" into "is the time for all".</p>
577
     *
578
     * <p>Works like {@code truncate(String, int)}, but allows you to specify
579
     * a "left edge" offset.
580
     *
581
     * <p>Specifically:</p>
582
     * <ul>
583
     *   <li>If {@code str} is less than {@code maxWidth} characters
584
     *       long, return it.</li>
585
     *   <li>Else truncate it to {@code substring(str, offset, maxWidth)}.</li>
586
     *   <li>If {@code maxWidth} is less than {@code 0}, throw an
587
     *       {@code IllegalArgumentException}.</li>
588
     *   <li>If {@code offset} is less than {@code 0}, throw an
589
     *       {@code IllegalArgumentException}.</li>
590
     *   <li>In no case will it return a String of length greater than
591
     *       {@code maxWidth}.</li>
592
     * </ul>
593
     *
594
     * <pre>
595
     * StringUtils.truncate(null, 0, 0) = null
596
     * StringUtils.truncate(null, 2, 4) = null
597
     * StringUtils.truncate("", 0, 10) = ""
598
     * StringUtils.truncate("", 2, 10) = ""
599
     * StringUtils.truncate("abcdefghij", 0, 3) = "abc"
600
     * StringUtils.truncate("abcdefghij", 5, 6) = "fghij"
601
     * StringUtils.truncate("raspberry peach", 10, 15) = "peach"
602
     * StringUtils.truncate("abcdefghijklmno", 0, 10) = "abcdefghij"
603
     * StringUtils.truncate("abcdefghijklmno", -1, 10) = throws an IllegalArgumentException
604
     * StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, 10) = "abcdefghij"
605
     * StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, Integer.MAX_VALUE) = "abcdefghijklmno"
606
     * StringUtils.truncate("abcdefghijklmno", 0, Integer.MAX_VALUE) = "abcdefghijklmno"
607
     * StringUtils.truncate("abcdefghijklmno", 1, 10) = "bcdefghijk"
608
     * StringUtils.truncate("abcdefghijklmno", 2, 10) = "cdefghijkl"
609
     * StringUtils.truncate("abcdefghijklmno", 3, 10) = "defghijklm"
610
     * StringUtils.truncate("abcdefghijklmno", 4, 10) = "efghijklmn"
611
     * StringUtils.truncate("abcdefghijklmno", 5, 10) = "fghijklmno"
612
     * StringUtils.truncate("abcdefghijklmno", 5, 5) = "fghij"
613
     * StringUtils.truncate("abcdefghijklmno", 5, 3) = "fgh"
614
     * StringUtils.truncate("abcdefghijklmno", 10, 3) = "klm"
615
     * StringUtils.truncate("abcdefghijklmno", 10, Integer.MAX_VALUE) = "klmno"
616
     * StringUtils.truncate("abcdefghijklmno", 13, 1) = "n"
617
     * StringUtils.truncate("abcdefghijklmno", 13, Integer.MAX_VALUE) = "no"
618
     * StringUtils.truncate("abcdefghijklmno", 14, 1) = "o"
619
     * StringUtils.truncate("abcdefghijklmno", 14, Integer.MAX_VALUE) = "o"
620
     * StringUtils.truncate("abcdefghijklmno", 15, 1) = ""
621
     * StringUtils.truncate("abcdefghijklmno", 15, Integer.MAX_VALUE) = ""
622
     * StringUtils.truncate("abcdefghijklmno", Integer.MAX_VALUE, Integer.MAX_VALUE) = ""
623
     * StringUtils.truncate("abcdefghij", 3, -1) = throws an IllegalArgumentException
624
     * StringUtils.truncate("abcdefghij", -2, 4) = throws an IllegalArgumentException
625
     * </pre>
626
     *
627
     * @param str  the String to check, may be null
628
     * @param offset  left edge of source String
629
     * @param maxWidth  maximum length of result String, must be positive
630
     * @return truncated String, {@code null} if null String input
631
     * @since 3.5
632
     */
633
    public static String truncate(final String str, final int offset, final int maxWidth) {
634 2 1. truncate : changed conditional boundary → KILLED
2. truncate : negated conditional → KILLED
        if (offset < 0) {
635
            throw new IllegalArgumentException("offset cannot be negative");
636
        }
637 2 1. truncate : changed conditional boundary → KILLED
2. truncate : negated conditional → KILLED
        if (maxWidth < 0) {
638
            throw new IllegalArgumentException("maxWith cannot be negative");
639
        }
640 1 1. truncate : negated conditional → KILLED
        if (str == null) {
641 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
642
        }
643 2 1. truncate : changed conditional boundary → SURVIVED
2. truncate : negated conditional → KILLED
        if (offset > str.length()) {
644 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
645
        }
646 2 1. truncate : changed conditional boundary → SURVIVED
2. truncate : negated conditional → KILLED
        if (str.length() > maxWidth) {
647 4 1. truncate : changed conditional boundary → SURVIVED
2. truncate : Replaced integer addition with subtraction → KILLED
3. truncate : Replaced integer addition with subtraction → KILLED
4. truncate : negated conditional → KILLED
            final int ix = offset + maxWidth > str.length() ? str.length() : offset + maxWidth;
648 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(offset, ix);
649
        }
650 1 1. truncate : mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(offset);
651
    }
652
653
    // Stripping
654
    //-----------------------------------------------------------------------
655
    /**
656
     * <p>Strips whitespace from the start and end of a String.</p>
657
     *
658
     * <p>This is similar to {@link #trim(String)} but removes whitespace.
659
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
660
     *
661
     * <p>A {@code null} input String returns {@code null}.</p>
662
     *
663
     * <pre>
664
     * StringUtils.strip(null)     = null
665
     * StringUtils.strip("")       = ""
666
     * StringUtils.strip("   ")    = ""
667
     * StringUtils.strip("abc")    = "abc"
668
     * StringUtils.strip("  abc")  = "abc"
669
     * StringUtils.strip("abc  ")  = "abc"
670
     * StringUtils.strip(" abc ")  = "abc"
671
     * StringUtils.strip(" ab c ") = "ab c"
672
     * </pre>
673
     *
674
     * @param str  the String to remove whitespace from, may be null
675
     * @return the stripped String, {@code null} if null String input
676
     */
677
    public static String strip(final String str) {
678 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return strip(str, null);
679
    }
680
681
    /**
682
     * <p>Strips whitespace from the start and end of a String  returning
683
     * {@code null} if the String is empty ("") after the strip.</p>
684
     *
685
     * <p>This is similar to {@link #trimToNull(String)} but removes whitespace.
686
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
687
     *
688
     * <pre>
689
     * StringUtils.stripToNull(null)     = null
690
     * StringUtils.stripToNull("")       = null
691
     * StringUtils.stripToNull("   ")    = null
692
     * StringUtils.stripToNull("abc")    = "abc"
693
     * StringUtils.stripToNull("  abc")  = "abc"
694
     * StringUtils.stripToNull("abc  ")  = "abc"
695
     * StringUtils.stripToNull(" abc ")  = "abc"
696
     * StringUtils.stripToNull(" ab c ") = "ab c"
697
     * </pre>
698
     *
699
     * @param str  the String to be stripped, may be null
700
     * @return the stripped String,
701
     *  {@code null} if whitespace, empty or null String input
702
     * @since 2.0
703
     */
704
    public static String stripToNull(String str) {
705 1 1. stripToNull : negated conditional → KILLED
        if (str == null) {
706 1 1. stripToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
707
        }
708
        str = strip(str, null);
709 2 1. stripToNull : negated conditional → KILLED
2. stripToNull : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.isEmpty() ? null : str;
710
    }
711
712
    /**
713
     * <p>Strips whitespace from the start and end of a String  returning
714
     * an empty String if {@code null} input.</p>
715
     *
716
     * <p>This is similar to {@link #trimToEmpty(String)} but removes whitespace.
717
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
718
     *
719
     * <pre>
720
     * StringUtils.stripToEmpty(null)     = ""
721
     * StringUtils.stripToEmpty("")       = ""
722
     * StringUtils.stripToEmpty("   ")    = ""
723
     * StringUtils.stripToEmpty("abc")    = "abc"
724
     * StringUtils.stripToEmpty("  abc")  = "abc"
725
     * StringUtils.stripToEmpty("abc  ")  = "abc"
726
     * StringUtils.stripToEmpty(" abc ")  = "abc"
727
     * StringUtils.stripToEmpty(" ab c ") = "ab c"
728
     * </pre>
729
     *
730
     * @param str  the String to be stripped, may be null
731
     * @return the trimmed String, or an empty String if {@code null} input
732
     * @since 2.0
733
     */
734
    public static String stripToEmpty(final String str) {
735 2 1. stripToEmpty : negated conditional → KILLED
2. stripToEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : strip(str, null);
736
    }
737
738
    /**
739
     * <p>Strips any of a set of characters from the start and end of a String.
740
     * This is similar to {@link String#trim()} but allows the characters
741
     * to be stripped to be controlled.</p>
742
     *
743
     * <p>A {@code null} input String returns {@code null}.
744
     * An empty string ("") input returns the empty string.</p>
745
     *
746
     * <p>If the stripChars String is {@code null}, whitespace is
747
     * stripped as defined by {@link Character#isWhitespace(char)}.
748
     * Alternatively use {@link #strip(String)}.</p>
749
     *
750
     * <pre>
751
     * StringUtils.strip(null, *)          = null
752
     * StringUtils.strip("", *)            = ""
753
     * StringUtils.strip("abc", null)      = "abc"
754
     * StringUtils.strip("  abc", null)    = "abc"
755
     * StringUtils.strip("abc  ", null)    = "abc"
756
     * StringUtils.strip(" abc ", null)    = "abc"
757
     * StringUtils.strip("  abcyx", "xyz") = "  abc"
758
     * </pre>
759
     *
760
     * @param str  the String to remove characters from, may be null
761
     * @param stripChars  the characters to remove, null treated as whitespace
762
     * @return the stripped String, {@code null} if null String input
763
     */
764
    public static String strip(String str, final String stripChars) {
765 1 1. strip : negated conditional → KILLED
        if (isEmpty(str)) {
766 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
767
        }
768
        str = stripStart(str, stripChars);
769 1 1. strip : mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return stripEnd(str, stripChars);
770
    }
771
    
772
    /**
773
     * <p>Strips any of a set of characters from the start of a String.</p>
774
     *
775
     * <p>A {@code null} input String returns {@code null}.
776
     * An empty string ("") input returns the empty string.</p>
777
     *
778
     * <p>If the stripChars String is {@code null}, whitespace is
779
     * stripped as defined by {@link Character#isWhitespace(char)}.</p>
780
     *
781
     * <pre>
782
     * StringUtils.stripStart(null, *)          = null
783
     * StringUtils.stripStart("", *)            = ""
784
     * StringUtils.stripStart("abc", "")        = "abc"
785
     * StringUtils.stripStart("abc", null)      = "abc"
786
     * StringUtils.stripStart("  abc", null)    = "abc"
787
     * StringUtils.stripStart("abc  ", null)    = "abc  "
788
     * StringUtils.stripStart(" abc ", null)    = "abc "
789
     * StringUtils.stripStart("yxabc  ", "xyz") = "abc  "
790
     * </pre>
791
     *
792
     * @param str  the String to remove characters from, may be null
793
     * @param stripChars  the characters to remove, null treated as whitespace
794
     * @return the stripped String, {@code null} if null String input
795
     */
796
    public static String stripStart(final String str, final String stripChars) {
797
        int strLen;
798 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
799 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
800
        }
801
        int start = 0;
802 1 1. stripStart : negated conditional → KILLED
        if (stripChars == null) {
803 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
            while (start != strLen && Character.isWhitespace(str.charAt(start))) {
804 1 1. stripStart : Changed increment from 1 to -1 → KILLED
                start++;
805
            }
806 1 1. stripStart : negated conditional → KILLED
        } else if (stripChars.isEmpty()) {
807 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
808
        } else {
809 2 1. stripStart : negated conditional → KILLED
2. stripStart : negated conditional → KILLED
            while (start != strLen && stripChars.indexOf(str.charAt(start)) != INDEX_NOT_FOUND) {
810 1 1. stripStart : Changed increment from 1 to -1 → KILLED
                start++;
811
            }
812
        }
813 1 1. stripStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start);
814
    }
815
816
    /**
817
     * <p>Strips any of a set of characters from the end of a String.</p>
818
     *
819
     * <p>A {@code null} input String returns {@code null}.
820
     * An empty string ("") input returns the empty string.</p>
821
     *
822
     * <p>If the stripChars String is {@code null}, whitespace is
823
     * stripped as defined by {@link Character#isWhitespace(char)}.</p>
824
     *
825
     * <pre>
826
     * StringUtils.stripEnd(null, *)          = null
827
     * StringUtils.stripEnd("", *)            = ""
828
     * StringUtils.stripEnd("abc", "")        = "abc"
829
     * StringUtils.stripEnd("abc", null)      = "abc"
830
     * StringUtils.stripEnd("  abc", null)    = "  abc"
831
     * StringUtils.stripEnd("abc  ", null)    = "abc"
832
     * StringUtils.stripEnd(" abc ", null)    = " abc"
833
     * StringUtils.stripEnd("  abcyx", "xyz") = "  abc"
834
     * StringUtils.stripEnd("120.00", ".0")   = "12"
835
     * </pre>
836
     *
837
     * @param str  the String to remove characters from, may be null
838
     * @param stripChars  the set of characters to remove, null treated as whitespace
839
     * @return the stripped String, {@code null} if null String input
840
     */
841
    public static String stripEnd(final String str, final String stripChars) {
842
        int end;
843 2 1. stripEnd : negated conditional → KILLED
2. stripEnd : negated conditional → KILLED
        if (str == null || (end = str.length()) == 0) {
844 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
845
        }
846
847 1 1. stripEnd : negated conditional → KILLED
        if (stripChars == null) {
848 3 1. stripEnd : Replaced integer subtraction with addition → KILLED
2. stripEnd : negated conditional → KILLED
3. stripEnd : negated conditional → KILLED
            while (end != 0 && Character.isWhitespace(str.charAt(end - 1))) {
849 1 1. stripEnd : Changed increment from -1 to 1 → KILLED
                end--;
850
            }
851 1 1. stripEnd : negated conditional → KILLED
        } else if (stripChars.isEmpty()) {
852 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
853
        } else {
854 3 1. stripEnd : Replaced integer subtraction with addition → KILLED
2. stripEnd : negated conditional → KILLED
3. stripEnd : negated conditional → KILLED
            while (end != 0 && stripChars.indexOf(str.charAt(end - 1)) != INDEX_NOT_FOUND) {
855 1 1. stripEnd : Changed increment from -1 to 1 → KILLED
                end--;
856
            }
857
        }
858 1 1. stripEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, end);
859
    }
860
861
    // StripAll
862
    //-----------------------------------------------------------------------
863
    /**
864
     * <p>Strips whitespace from the start and end of every String in an array.
865
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
866
     *
867
     * <p>A new array is returned each time, except for length zero.
868
     * A {@code null} array will return {@code null}.
869
     * An empty array will return itself.
870
     * A {@code null} array entry will be ignored.</p>
871
     *
872
     * <pre>
873
     * StringUtils.stripAll(null)             = null
874
     * StringUtils.stripAll([])               = []
875
     * StringUtils.stripAll(["abc", "  abc"]) = ["abc", "abc"]
876
     * StringUtils.stripAll(["abc  ", null])  = ["abc", null]
877
     * </pre>
878
     *
879
     * @param strs  the array to remove whitespace from, may be null
880
     * @return the stripped Strings, {@code null} if null array input
881
     */
882
    public static String[] stripAll(final String... strs) {
883 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return stripAll(strs, null);
884
    }
885
886
    /**
887
     * <p>Strips any of a set of characters from the start and end of every
888
     * String in an array.</p>
889
     * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
890
     *
891
     * <p>A new array is returned each time, except for length zero.
892
     * A {@code null} array will return {@code null}.
893
     * An empty array will return itself.
894
     * A {@code null} array entry will be ignored.
895
     * A {@code null} stripChars will strip whitespace as defined by
896
     * {@link Character#isWhitespace(char)}.</p>
897
     *
898
     * <pre>
899
     * StringUtils.stripAll(null, *)                = null
900
     * StringUtils.stripAll([], *)                  = []
901
     * StringUtils.stripAll(["abc", "  abc"], null) = ["abc", "abc"]
902
     * StringUtils.stripAll(["abc  ", null], null)  = ["abc", null]
903
     * StringUtils.stripAll(["abc  ", null], "yz")  = ["abc  ", null]
904
     * StringUtils.stripAll(["yabcz", null], "yz")  = ["abc", null]
905
     * </pre>
906
     *
907
     * @param strs  the array to remove characters from, may be null
908
     * @param stripChars  the characters to remove, null treated as whitespace
909
     * @return the stripped Strings, {@code null} if null array input
910
     */
911
    public static String[] stripAll(final String[] strs, final String stripChars) {
912
        int strsLen;
913 2 1. stripAll : negated conditional → KILLED
2. stripAll : negated conditional → KILLED
        if (strs == null || (strsLen = strs.length) == 0) {
914 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs;
915
        }
916
        final String[] newArr = new String[strsLen];
917 3 1. stripAll : changed conditional boundary → KILLED
2. stripAll : Changed increment from 1 to -1 → KILLED
3. stripAll : negated conditional → KILLED
        for (int i = 0; i < strsLen; i++) {
918
            newArr[i] = strip(strs[i], stripChars);
919
        }
920 1 1. stripAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return newArr;
921
    }
922
923
    /**
924
     * <p>Removes diacritics (~= accents) from a string. The case will not be altered.</p>
925
     * <p>For instance, '&agrave;' will be replaced by 'a'.</p>
926
     * <p>Note that ligatures will be left as is.</p>
927
     *
928
     * <pre>
929
     * StringUtils.stripAccents(null)                = null
930
     * StringUtils.stripAccents("")                  = ""
931
     * StringUtils.stripAccents("control")           = "control"
932
     * StringUtils.stripAccents("&eacute;clair")     = "eclair"
933
     * </pre>
934
     *
935
     * @param input String to be stripped
936
     * @return input text with diacritics removed
937
     *
938
     * @since 3.0
939
     */
940
    // See also Lucene's ASCIIFoldingFilter (Lucene 2.9) that replaces accented characters by their unaccented equivalent (and uncommitted bug fix: https://issues.apache.org/jira/browse/LUCENE-1343?focusedCommentId=12858907&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12858907).
941
    public static String stripAccents(final String input) {
942 1 1. stripAccents : negated conditional → KILLED
        if(input == null) {
943 1 1. stripAccents : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
944
        }
945
        final Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");//$NON-NLS-1$
946
        final StringBuilder decomposed = new StringBuilder(Normalizer.normalize(input, Normalizer.Form.NFD));
947 1 1. stripAccents : removed call to org/apache/commons/lang3/StringUtils::convertRemainingAccentCharacters → KILLED
        convertRemainingAccentCharacters(decomposed);
948
        // Note that this doesn't correctly remove ligatures...
949 1 1. stripAccents : mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return pattern.matcher(decomposed).replaceAll(StringUtils.EMPTY);
950
    }
951
952
    private static void convertRemainingAccentCharacters(final StringBuilder decomposed) {
953 3 1. convertRemainingAccentCharacters : changed conditional boundary → KILLED
2. convertRemainingAccentCharacters : Changed increment from 1 to -1 → KILLED
3. convertRemainingAccentCharacters : negated conditional → KILLED
        for (int i = 0; i < decomposed.length(); i++) {
954 1 1. convertRemainingAccentCharacters : negated conditional → KILLED
            if (decomposed.charAt(i) == '\u0141') {
955
                decomposed.deleteCharAt(i);
956
                decomposed.insert(i, 'L');
957 1 1. convertRemainingAccentCharacters : negated conditional → KILLED
            } else if (decomposed.charAt(i) == '\u0142') {
958
                decomposed.deleteCharAt(i);
959
                decomposed.insert(i, 'l');
960
            }
961
        }
962
    }
963
964
    // Equals
965
    //-----------------------------------------------------------------------
966
    /**
967
     * <p>Compares two CharSequences, returning {@code true} if they represent
968
     * equal sequences of characters.</p>
969
     *
970
     * <p>{@code null}s are handled without exceptions. Two {@code null}
971
     * references are considered to be equal. The comparison is case sensitive.</p>
972
     *
973
     * <pre>
974
     * StringUtils.equals(null, null)   = true
975
     * StringUtils.equals(null, "abc")  = false
976
     * StringUtils.equals("abc", null)  = false
977
     * StringUtils.equals("abc", "abc") = true
978
     * StringUtils.equals("abc", "ABC") = false
979
     * </pre>
980
     *
981
     * @see Object#equals(Object)
982
     * @param cs1  the first CharSequence, may be {@code null}
983
     * @param cs2  the second CharSequence, may be {@code null}
984
     * @return {@code true} if the CharSequences are equal (case-sensitive), or both {@code null}
985
     * @since 3.0 Changed signature from equals(String, String) to equals(CharSequence, CharSequence)
986
     */
987
    public static boolean equals(final CharSequence cs1, final CharSequence cs2) {
988 1 1. equals : negated conditional → KILLED
        if (cs1 == cs2) {
989 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
990
        }
991 2 1. equals : negated conditional → KILLED
2. equals : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
992 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
993
        }
994 1 1. equals : negated conditional → KILLED
        if (cs1.length() != cs2.length()) {
995 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
996
        }
997 2 1. equals : negated conditional → KILLED
2. equals : negated conditional → KILLED
        if (cs1 instanceof String && cs2 instanceof String) {
998 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return cs1.equals(cs2);
999
        }
1000 1 1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length());
1001
    }
1002
1003
    /**
1004
     * <p>Compares two CharSequences, returning {@code true} if they represent
1005
     * equal sequences of characters, ignoring case.</p>
1006
     *
1007
     * <p>{@code null}s are handled without exceptions. Two {@code null}
1008
     * references are considered equal. Comparison is case insensitive.</p>
1009
     *
1010
     * <pre>
1011
     * StringUtils.equalsIgnoreCase(null, null)   = true
1012
     * StringUtils.equalsIgnoreCase(null, "abc")  = false
1013
     * StringUtils.equalsIgnoreCase("abc", null)  = false
1014
     * StringUtils.equalsIgnoreCase("abc", "abc") = true
1015
     * StringUtils.equalsIgnoreCase("abc", "ABC") = true
1016
     * </pre>
1017
     *
1018
     * @param str1  the first CharSequence, may be null
1019
     * @param str2  the second CharSequence, may be null
1020
     * @return {@code true} if the CharSequence are equal, case insensitive, or
1021
     *  both {@code null}
1022
     * @since 3.0 Changed signature from equalsIgnoreCase(String, String) to equalsIgnoreCase(CharSequence, CharSequence)
1023
     */
1024
    public static boolean equalsIgnoreCase(final CharSequence str1, final CharSequence str2) {
1025 2 1. equalsIgnoreCase : negated conditional → KILLED
2. equalsIgnoreCase : negated conditional → KILLED
        if (str1 == null || str2 == null) {
1026 2 1. equalsIgnoreCase : negated conditional → KILLED
2. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str1 == str2;
1027 1 1. equalsIgnoreCase : negated conditional → KILLED
        } else if (str1 == str2) {
1028 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
1029 1 1. equalsIgnoreCase : negated conditional → KILLED
        } else if (str1.length() != str2.length()) {
1030 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1031
        } else {
1032 1 1. equalsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return CharSequenceUtils.regionMatches(str1, true, 0, str2, 0, str1.length());
1033
        }
1034
    }
1035
1036
    // Compare
1037
    //-----------------------------------------------------------------------
1038
    /**
1039
     * <p>Compare two Strings lexicographically, as per {@link String#compareTo(String)}, returning :</p>
1040
     * <ul>
1041
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1042
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1043
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1044
     * </ul>
1045
     *
1046
     * <p>This is a {@code null} safe version of :</p>
1047
     * <blockquote><pre>str1.compareTo(str2)</pre></blockquote>
1048
     *
1049
     * <p>{@code null} value is considered less than non-{@code null} value.
1050
     * Two {@code null} references are considered equal.</p>
1051
     *
1052
     * <pre>
1053
     * StringUtils.compare(null, null)   = 0
1054
     * StringUtils.compare(null , "a")   &lt; 0
1055
     * StringUtils.compare("a", null)    &gt; 0
1056
     * StringUtils.compare("abc", "abc") = 0
1057
     * StringUtils.compare("a", "b")     &lt; 0
1058
     * StringUtils.compare("b", "a")     &gt; 0
1059
     * StringUtils.compare("a", "B")     &gt; 0
1060
     * StringUtils.compare("ab", "abc")  &lt; 0
1061
     * </pre>
1062
     *
1063
     * @see #compare(String, String, boolean)
1064
     * @see String#compareTo(String)
1065
     * @param str1  the String to compare from
1066
     * @param str2  the String to compare to
1067
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2}
1068
     * @since 3.5
1069
     */
1070
    public static int compare(final String str1, final String str2) {
1071 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return compare(str1, str2, true);
1072
    }
1073
1074
    /**
1075
     * <p>Compare two Strings lexicographically, as per {@link String#compareTo(String)}, returning :</p>
1076
     * <ul>
1077
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1078
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1079
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1080
     * </ul>
1081
     *
1082
     * <p>This is a {@code null} safe version of :</p>
1083
     * <blockquote><pre>str1.compareTo(str2)</pre></blockquote>
1084
     *
1085
     * <p>{@code null} inputs are handled according to the {@code nullIsLess} parameter.
1086
     * Two {@code null} references are considered equal.</p>
1087
     *
1088
     * <pre>
1089
     * StringUtils.compare(null, null, *)     = 0
1090
     * StringUtils.compare(null , "a", true)  &lt; 0
1091
     * StringUtils.compare(null , "a", false) &gt; 0
1092
     * StringUtils.compare("a", null, true)   &gt; 0
1093
     * StringUtils.compare("a", null, false)  &lt; 0
1094
     * StringUtils.compare("abc", "abc", *)   = 0
1095
     * StringUtils.compare("a", "b", *)       &lt; 0
1096
     * StringUtils.compare("b", "a", *)       &gt; 0
1097
     * StringUtils.compare("a", "B", *)       &gt; 0
1098
     * StringUtils.compare("ab", "abc", *)    &lt; 0
1099
     * </pre>
1100
     *
1101
     * @see String#compareTo(String)
1102
     * @param str1  the String to compare from
1103
     * @param str2  the String to compare to
1104
     * @param nullIsLess  whether consider {@code null} value less than non-{@code null} value
1105
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2}
1106
     * @since 3.5
1107
     */
1108
    public static int compare(final String str1, final String str2, final boolean nullIsLess) {
1109 1 1. compare : negated conditional → KILLED
        if (str1 == str2) {
1110 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
1111
        }
1112 1 1. compare : negated conditional → KILLED
        if (str1 == null) {
1113 2 1. compare : negated conditional → KILLED
2. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? -1 : 1;
1114
        }
1115 1 1. compare : negated conditional → KILLED
        if (str2 == null) {
1116 2 1. compare : negated conditional → KILLED
2. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? 1 : - 1;
1117
        }
1118 1 1. compare : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return str1.compareTo(str2);
1119
    }
1120
1121
    /**
1122
     * <p>Compare two Strings lexicographically, ignoring case differences,
1123
     * as per {@link String#compareToIgnoreCase(String)}, returning :</p>
1124
     * <ul>
1125
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1126
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1127
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1128
     * </ul>
1129
     *
1130
     * <p>This is a {@code null} safe version of :</p>
1131
     * <blockquote><pre>str1.compareToIgnoreCase(str2)</pre></blockquote>
1132
     *
1133
     * <p>{@code null} value is considered less than non-{@code null} value.
1134
     * Two {@code null} references are considered equal.
1135
     * Comparison is case insensitive.</p>
1136
     *
1137
     * <pre>
1138
     * StringUtils.compareIgnoreCase(null, null)   = 0
1139
     * StringUtils.compareIgnoreCase(null , "a")   &lt; 0
1140
     * StringUtils.compareIgnoreCase("a", null)    &gt; 0
1141
     * StringUtils.compareIgnoreCase("abc", "abc") = 0
1142
     * StringUtils.compareIgnoreCase("abc", "ABC") = 0
1143
     * StringUtils.compareIgnoreCase("a", "b")     &lt; 0
1144
     * StringUtils.compareIgnoreCase("b", "a")     &gt; 0
1145
     * StringUtils.compareIgnoreCase("a", "B")     &lt; 0
1146
     * StringUtils.compareIgnoreCase("A", "b")     &lt; 0
1147
     * StringUtils.compareIgnoreCase("ab", "ABC")  &lt; 0
1148
     * </pre>
1149
     *
1150
     * @see #compareIgnoreCase(String, String, boolean)
1151
     * @see String#compareToIgnoreCase(String)
1152
     * @param str1  the String to compare from
1153
     * @param str2  the String to compare to
1154
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2},
1155
     *          ignoring case differences.
1156
     * @since 3.5
1157
     */
1158
    public static int compareIgnoreCase(final String str1, final String str2) {
1159 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return compareIgnoreCase(str1, str2, true);
1160
    }
1161
1162
    /**
1163
     * <p>Compare two Strings lexicographically, ignoring case differences,
1164
     * as per {@link String#compareToIgnoreCase(String)}, returning :</p>
1165
     * <ul>
1166
     *  <li>{@code int = 0}, if {@code str1} is equal to {@code str2} (or both {@code null})</li>
1167
     *  <li>{@code int < 0}, if {@code str1} is less than {@code str2}</li>
1168
     *  <li>{@code int > 0}, if {@code str1} is greater than {@code str2}</li>
1169
     * </ul>
1170
     *
1171
     * <p>This is a {@code null} safe version of :</p>
1172
     * <blockquote><pre>str1.compareToIgnoreCase(str2)</pre></blockquote>
1173
     *
1174
     * <p>{@code null} inputs are handled according to the {@code nullIsLess} parameter.
1175
     * Two {@code null} references are considered equal.
1176
     * Comparison is case insensitive.</p>
1177
     *
1178
     * <pre>
1179
     * StringUtils.compareIgnoreCase(null, null, *)     = 0
1180
     * StringUtils.compareIgnoreCase(null , "a", true)  &lt; 0
1181
     * StringUtils.compareIgnoreCase(null , "a", false) &gt; 0
1182
     * StringUtils.compareIgnoreCase("a", null, true)   &gt; 0
1183
     * StringUtils.compareIgnoreCase("a", null, false)  &lt; 0
1184
     * StringUtils.compareIgnoreCase("abc", "abc", *)   = 0
1185
     * StringUtils.compareIgnoreCase("abc", "ABC", *)   = 0
1186
     * StringUtils.compareIgnoreCase("a", "b", *)       &lt; 0
1187
     * StringUtils.compareIgnoreCase("b", "a", *)       &gt; 0
1188
     * StringUtils.compareIgnoreCase("a", "B", *)       &lt; 0
1189
     * StringUtils.compareIgnoreCase("A", "b", *)       &lt; 0
1190
     * StringUtils.compareIgnoreCase("ab", "abc", *)    &lt; 0
1191
     * </pre>
1192
     *
1193
     * @see String#compareToIgnoreCase(String)
1194
     * @param str1  the String to compare from
1195
     * @param str2  the String to compare to
1196
     * @param nullIsLess  whether consider {@code null} value less than non-{@code null} value
1197
     * @return &lt; 0, 0, &gt; 0, if {@code str1} is respectively less, equal ou greater than {@code str2},
1198
     *          ignoring case differences.
1199
     * @since 3.5
1200
     */
1201
    public static int compareIgnoreCase(final String str1, final String str2, final boolean nullIsLess) {
1202 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str1 == str2) {
1203 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
1204
        }
1205 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str1 == null) {
1206 2 1. compareIgnoreCase : negated conditional → KILLED
2. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? -1 : 1;
1207
        }
1208 1 1. compareIgnoreCase : negated conditional → KILLED
        if (str2 == null) {
1209 2 1. compareIgnoreCase : negated conditional → KILLED
2. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return nullIsLess ? 1 : - 1;
1210
        }
1211 1 1. compareIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return str1.compareToIgnoreCase(str2);
1212
    }
1213
1214
    /**
1215
     * <p>Compares given <code>string</code> to a CharSequences vararg of <code>searchStrings</code>,
1216
     * returning {@code true} if the <code>string</code> is equal to any of the <code>searchStrings</code>.</p>
1217
     *
1218
     * <pre>
1219
     * StringUtils.equalsAny(null, (CharSequence[]) null) = false
1220
     * StringUtils.equalsAny(null, null, null)    = true
1221
     * StringUtils.equalsAny(null, "abc", "def")  = false
1222
     * StringUtils.equalsAny("abc", null, "def")  = false
1223
     * StringUtils.equalsAny("abc", "abc", "def") = true
1224
     * StringUtils.equalsAny("abc", "ABC", "DEF") = false
1225
     * </pre>
1226
     *
1227
     * @param string to compare, may be {@code null}.
1228
     * @param searchStrings a vararg of strings, may be {@code null}.
1229
     * @return {@code true} if the string is equal (case-sensitive) to any other element of <code>searchStrings</code>;
1230
     * {@code false} if <code>searchStrings</code> is null or contains no matches.
1231
     * @since 3.5
1232
     */
1233
    public static boolean equalsAny(final CharSequence string, final CharSequence... searchStrings) {
1234 1 1. equalsAny : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(searchStrings)) {
1235 3 1. equalsAny : changed conditional boundary → KILLED
2. equalsAny : Changed increment from 1 to -1 → KILLED
3. equalsAny : negated conditional → KILLED
            for (final CharSequence next : searchStrings) {
1236 1 1. equalsAny : negated conditional → KILLED
                if (equals(string, next)) {
1237 1 1. equalsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return true;
1238
                }
1239
            }
1240
        }
1241 1 1. equalsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1242
    }
1243
1244
1245
    /**
1246
     * <p>Compares given <code>string</code> to a CharSequences vararg of <code>searchStrings</code>,
1247
     * returning {@code true} if the <code>string</code> is equal to any of the <code>searchStrings</code>, ignoring case.</p>
1248
     *
1249
     * <pre>
1250
     * StringUtils.equalsAnyIgnoreCase(null, (CharSequence[]) null) = false
1251
     * StringUtils.equalsAnyIgnoreCase(null, null, null)    = true
1252
     * StringUtils.equalsAnyIgnoreCase(null, "abc", "def")  = false
1253
     * StringUtils.equalsAnyIgnoreCase("abc", null, "def")  = false
1254
     * StringUtils.equalsAnyIgnoreCase("abc", "abc", "def") = true
1255
     * StringUtils.equalsAnyIgnoreCase("abc", "ABC", "DEF") = true
1256
     * </pre>
1257
     *
1258
     * @param string to compare, may be {@code null}.
1259
     * @param searchStrings a vararg of strings, may be {@code null}.
1260
     * @return {@code true} if the string is equal (case-insensitive) to any other element of <code>searchStrings</code>;
1261
     * {@code false} if <code>searchStrings</code> is null or contains no matches.
1262
     * @since 3.5
1263
     */
1264
    public static boolean equalsAnyIgnoreCase(final CharSequence string, final CharSequence...searchStrings) {
1265 1 1. equalsAnyIgnoreCase : negated conditional → KILLED
        if (ArrayUtils.isNotEmpty(searchStrings)) {
1266 3 1. equalsAnyIgnoreCase : changed conditional boundary → KILLED
2. equalsAnyIgnoreCase : Changed increment from 1 to -1 → KILLED
3. equalsAnyIgnoreCase : negated conditional → KILLED
            for (final CharSequence next : searchStrings) {
1267 1 1. equalsAnyIgnoreCase : negated conditional → KILLED
                if (equalsIgnoreCase(string, next)) {
1268 1 1. equalsAnyIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return true;
1269
                }
1270
            }
1271
        }
1272 1 1. equalsAnyIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1273
    }
1274
1275
    // IndexOf
1276
    //-----------------------------------------------------------------------
1277
    /**
1278
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1279
     * This method uses {@link String#indexOf(int, int)} if possible.</p>
1280
     *
1281
     * <p>A {@code null} or empty ("") CharSequence will return {@code INDEX_NOT_FOUND (-1)}.</p>
1282
     *
1283
     * <pre>
1284
     * StringUtils.indexOf(null, *)         = -1
1285
     * StringUtils.indexOf("", *)           = -1
1286
     * StringUtils.indexOf("aabaabaa", 'a') = 0
1287
     * StringUtils.indexOf("aabaabaa", 'b') = 2
1288
     * </pre>
1289
     *
1290
     * @param seq  the CharSequence to check, may be null
1291
     * @param searchChar  the character to find
1292
     * @return the first index of the search character,
1293
     *  -1 if no match or {@code null} string input
1294
     * @since 2.0
1295
     * @since 3.0 Changed signature from indexOf(String, int) to indexOf(CharSequence, int)
1296
     */
1297
    public static int indexOf(final CharSequence seq, final int searchChar) {
1298 1 1. indexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1299 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1300
        }
1301 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, 0);
1302
    }
1303
1304
    /**
1305
     * <p>Finds the first index within a CharSequence from a start position,
1306
     * handling {@code null}.
1307
     * This method uses {@link String#indexOf(int, int)} if possible.</p>
1308
     *
1309
     * <p>A {@code null} or empty ("") CharSequence will return {@code (INDEX_NOT_FOUND) -1}.
1310
     * A negative start position is treated as zero.
1311
     * A start position greater than the string length returns {@code -1}.</p>
1312
     *
1313
     * <pre>
1314
     * StringUtils.indexOf(null, *, *)          = -1
1315
     * StringUtils.indexOf("", *, *)            = -1
1316
     * StringUtils.indexOf("aabaabaa", 'b', 0)  = 2
1317
     * StringUtils.indexOf("aabaabaa", 'b', 3)  = 5
1318
     * StringUtils.indexOf("aabaabaa", 'b', 9)  = -1
1319
     * StringUtils.indexOf("aabaabaa", 'b', -1) = 2
1320
     * </pre>
1321
     *
1322
     * @param seq  the CharSequence to check, may be null
1323
     * @param searchChar  the character to find
1324
     * @param startPos  the start position, negative treated as zero
1325
     * @return the first index of the search character (always &ge; startPos),
1326
     *  -1 if no match or {@code null} string input
1327
     * @since 2.0
1328
     * @since 3.0 Changed signature from indexOf(String, int, int) to indexOf(CharSequence, int, int)
1329
     */
1330
    public static int indexOf(final CharSequence seq, final int searchChar, final int startPos) {
1331 1 1. indexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1332 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1333
        }
1334 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, startPos);
1335
    }
1336
1337
    /**
1338
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1339
     * This method uses {@link String#indexOf(String, int)} if possible.</p>
1340
     *
1341
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1342
     *
1343
     * <pre>
1344
     * StringUtils.indexOf(null, *)          = -1
1345
     * StringUtils.indexOf(*, null)          = -1
1346
     * StringUtils.indexOf("", "")           = 0
1347
     * StringUtils.indexOf("", *)            = -1 (except when * = "")
1348
     * StringUtils.indexOf("aabaabaa", "a")  = 0
1349
     * StringUtils.indexOf("aabaabaa", "b")  = 2
1350
     * StringUtils.indexOf("aabaabaa", "ab") = 1
1351
     * StringUtils.indexOf("aabaabaa", "")   = 0
1352
     * </pre>
1353
     *
1354
     * @param seq  the CharSequence to check, may be null
1355
     * @param searchSeq  the CharSequence to find, may be null
1356
     * @return the first index of the search CharSequence,
1357
     *  -1 if no match or {@code null} string input
1358
     * @since 2.0
1359
     * @since 3.0 Changed signature from indexOf(String, String) to indexOf(CharSequence, CharSequence)
1360
     */
1361
    public static int indexOf(final CharSequence seq, final CharSequence searchSeq) {
1362 2 1. indexOf : negated conditional → KILLED
2. indexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1363 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1364
        }
1365 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, 0);
1366
    }
1367
1368
    /**
1369
     * <p>Finds the first index within a CharSequence, handling {@code null}.
1370
     * This method uses {@link String#indexOf(String, int)} if possible.</p>
1371
     *
1372
     * <p>A {@code null} CharSequence will return {@code -1}.
1373
     * A negative start position is treated as zero.
1374
     * An empty ("") search CharSequence always matches.
1375
     * A start position greater than the string length only matches
1376
     * an empty search CharSequence.</p>
1377
     *
1378
     * <pre>
1379
     * StringUtils.indexOf(null, *, *)          = -1
1380
     * StringUtils.indexOf(*, null, *)          = -1
1381
     * StringUtils.indexOf("", "", 0)           = 0
1382
     * StringUtils.indexOf("", *, 0)            = -1 (except when * = "")
1383
     * StringUtils.indexOf("aabaabaa", "a", 0)  = 0
1384
     * StringUtils.indexOf("aabaabaa", "b", 0)  = 2
1385
     * StringUtils.indexOf("aabaabaa", "ab", 0) = 1
1386
     * StringUtils.indexOf("aabaabaa", "b", 3)  = 5
1387
     * StringUtils.indexOf("aabaabaa", "b", 9)  = -1
1388
     * StringUtils.indexOf("aabaabaa", "b", -1) = 2
1389
     * StringUtils.indexOf("aabaabaa", "", 2)   = 2
1390
     * StringUtils.indexOf("abc", "", 9)        = 3
1391
     * </pre>
1392
     *
1393
     * @param seq  the CharSequence to check, may be null
1394
     * @param searchSeq  the CharSequence to find, may be null
1395
     * @param startPos  the start position, negative treated as zero
1396
     * @return the first index of the search CharSequence (always &ge; startPos),
1397
     *  -1 if no match or {@code null} string input
1398
     * @since 2.0
1399
     * @since 3.0 Changed signature from indexOf(String, String, int) to indexOf(CharSequence, CharSequence, int)
1400
     */
1401
    public static int indexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) {
1402 2 1. indexOf : negated conditional → KILLED
2. indexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1403 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1404
        }
1405 1 1. indexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, startPos);
1406
    }
1407
1408
    /**
1409
     * <p>Finds the n-th index within a CharSequence, handling {@code null}.
1410
     * This method uses {@link String#indexOf(String)} if possible.</p>
1411
     * <p><b>Note:</b> The code starts looking for a match at the start of the target,
1412
     * incrementing the starting index by one after each successful match
1413
     * (unless {@code searchStr} is an empty string in which case the position
1414
     * is never incremented and {@code 0} is returned immediately).
1415
     * This means that matches may overlap.</p>
1416
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1417
     *
1418
     * <pre>
1419
     * StringUtils.ordinalIndexOf(null, *, *)          = -1
1420
     * StringUtils.ordinalIndexOf(*, null, *)          = -1
1421
     * StringUtils.ordinalIndexOf("", "", *)           = 0
1422
     * StringUtils.ordinalIndexOf("aabaabaa", "a", 1)  = 0
1423
     * StringUtils.ordinalIndexOf("aabaabaa", "a", 2)  = 1
1424
     * StringUtils.ordinalIndexOf("aabaabaa", "b", 1)  = 2
1425
     * StringUtils.ordinalIndexOf("aabaabaa", "b", 2)  = 5
1426
     * StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
1427
     * StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
1428
     * StringUtils.ordinalIndexOf("aabaabaa", "", 1)   = 0
1429
     * StringUtils.ordinalIndexOf("aabaabaa", "", 2)   = 0
1430
     * </pre>
1431
     *
1432
     * <p>Matches may overlap:</p>
1433
     * <pre>
1434
     * StringUtils.ordinalIndexOf("ababab","aba", 1)   = 0
1435
     * StringUtils.ordinalIndexOf("ababab","aba", 2)   = 2
1436
     * StringUtils.ordinalIndexOf("ababab","aba", 3)   = -1
1437
     *
1438
     * StringUtils.ordinalIndexOf("abababab", "abab", 1) = 0
1439
     * StringUtils.ordinalIndexOf("abababab", "abab", 2) = 2
1440
     * StringUtils.ordinalIndexOf("abababab", "abab", 3) = 4
1441
     * StringUtils.ordinalIndexOf("abababab", "abab", 4) = -1
1442
     * </pre>
1443
     *
1444
     * <p>Note that 'head(CharSequence str, int n)' may be implemented as: </p>
1445
     *
1446
     * <pre>
1447
     *   str.substring(0, lastOrdinalIndexOf(str, "\n", n))
1448
     * </pre>
1449
     *
1450
     * @param str  the CharSequence to check, may be null
1451
     * @param searchStr  the CharSequence to find, may be null
1452
     * @param ordinal  the n-th {@code searchStr} to find
1453
     * @return the n-th index of the search CharSequence,
1454
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1455
     * @since 2.1
1456
     * @since 3.0 Changed signature from ordinalIndexOf(String, String, int) to ordinalIndexOf(CharSequence, CharSequence, int)
1457
     */
1458
    public static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal) {
1459 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ordinalIndexOf(str, searchStr, ordinal, false);
1460
    }
1461
1462
    /**
1463
     * <p>Finds the n-th index within a String, handling {@code null}.
1464
     * This method uses {@link String#indexOf(String)} if possible.</p>
1465
     * <p>Note that matches may overlap<p>
1466
     *
1467
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1468
     *
1469
     * @param str  the CharSequence to check, may be null
1470
     * @param searchStr  the CharSequence to find, may be null
1471
     * @param ordinal  the n-th {@code searchStr} to find, overlapping matches are allowed.
1472
     * @param lastIndex true if lastOrdinalIndexOf() otherwise false if ordinalIndexOf()
1473
     * @return the n-th index of the search CharSequence,
1474
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1475
     */
1476
    // Shared code between ordinalIndexOf(String,String,int) and lastOrdinalIndexOf(String,String,int)
1477
    private static int ordinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal, final boolean lastIndex) {
1478 4 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
3. ordinalIndexOf : negated conditional → KILLED
4. ordinalIndexOf : negated conditional → KILLED
        if (str == null || searchStr == null || ordinal <= 0) {
1479 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1480
        }
1481 1 1. ordinalIndexOf : negated conditional → KILLED
        if (searchStr.length() == 0) {
1482 2 1. ordinalIndexOf : negated conditional → KILLED
2. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return lastIndex ? str.length() : 0;
1483
        }
1484
        int found = 0;
1485
        // set the initial index beyond the end of the string
1486
        // this is to allow for the initial index decrement/increment
1487 1 1. ordinalIndexOf : negated conditional → KILLED
        int index = lastIndex ? str.length() : INDEX_NOT_FOUND;
1488
        do {
1489 1 1. ordinalIndexOf : negated conditional → KILLED
            if (lastIndex) {
1490 1 1. ordinalIndexOf : Replaced integer subtraction with addition → KILLED
                index = CharSequenceUtils.lastIndexOf(str, searchStr, index - 1); // step backwards thru string
1491
            } else {
1492 1 1. ordinalIndexOf : Replaced integer addition with subtraction → KILLED
                index = CharSequenceUtils.indexOf(str, searchStr, index + 1); // step forwards through string
1493
            }
1494 2 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
            if (index < 0) {
1495 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return index;
1496
            }
1497 1 1. ordinalIndexOf : Changed increment from 1 to -1 → KILLED
            found++;
1498 2 1. ordinalIndexOf : changed conditional boundary → KILLED
2. ordinalIndexOf : negated conditional → KILLED
        } while (found < ordinal);
1499 1 1. ordinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return index;
1500
    }
1501
1502
    /**
1503
     * <p>Case in-sensitive find of the first index within a CharSequence.</p>
1504
     *
1505
     * <p>A {@code null} CharSequence will return {@code -1}.
1506
     * A negative start position is treated as zero.
1507
     * An empty ("") search CharSequence always matches.
1508
     * A start position greater than the string length only matches
1509
     * an empty search CharSequence.</p>
1510
     *
1511
     * <pre>
1512
     * StringUtils.indexOfIgnoreCase(null, *)          = -1
1513
     * StringUtils.indexOfIgnoreCase(*, null)          = -1
1514
     * StringUtils.indexOfIgnoreCase("", "")           = 0
1515
     * StringUtils.indexOfIgnoreCase("aabaabaa", "a")  = 0
1516
     * StringUtils.indexOfIgnoreCase("aabaabaa", "b")  = 2
1517
     * StringUtils.indexOfIgnoreCase("aabaabaa", "ab") = 1
1518
     * </pre>
1519
     *
1520
     * @param str  the CharSequence to check, may be null
1521
     * @param searchStr  the CharSequence to find, may be null
1522
     * @return the first index of the search CharSequence,
1523
     *  -1 if no match or {@code null} string input
1524
     * @since 2.5
1525
     * @since 3.0 Changed signature from indexOfIgnoreCase(String, String) to indexOfIgnoreCase(CharSequence, CharSequence)
1526
     */
1527
    public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1528 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfIgnoreCase(str, searchStr, 0);
1529
    }
1530
1531
    /**
1532
     * <p>Case in-sensitive find of the first index within a CharSequence
1533
     * from the specified position.</p>
1534
     *
1535
     * <p>A {@code null} CharSequence will return {@code -1}.
1536
     * A negative start position is treated as zero.
1537
     * An empty ("") search CharSequence always matches.
1538
     * A start position greater than the string length only matches
1539
     * an empty search CharSequence.</p>
1540
     *
1541
     * <pre>
1542
     * StringUtils.indexOfIgnoreCase(null, *, *)          = -1
1543
     * StringUtils.indexOfIgnoreCase(*, null, *)          = -1
1544
     * StringUtils.indexOfIgnoreCase("", "", 0)           = 0
1545
     * StringUtils.indexOfIgnoreCase("aabaabaa", "A", 0)  = 0
1546
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 0)  = 2
1547
     * StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 0) = 1
1548
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 3)  = 5
1549
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", 9)  = -1
1550
     * StringUtils.indexOfIgnoreCase("aabaabaa", "B", -1) = 2
1551
     * StringUtils.indexOfIgnoreCase("aabaabaa", "", 2)   = 2
1552
     * StringUtils.indexOfIgnoreCase("abc", "", 9)        = -1
1553
     * </pre>
1554
     *
1555
     * @param str  the CharSequence to check, may be null
1556
     * @param searchStr  the CharSequence to find, may be null
1557
     * @param startPos  the start position, negative treated as zero
1558
     * @return the first index of the search CharSequence (always &ge; startPos),
1559
     *  -1 if no match or {@code null} string input
1560
     * @since 2.5
1561
     * @since 3.0 Changed signature from indexOfIgnoreCase(String, String, int) to indexOfIgnoreCase(CharSequence, CharSequence, int)
1562
     */
1563
    public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos) {
1564 2 1. indexOfIgnoreCase : negated conditional → KILLED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1565 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1566
        }
1567 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (startPos < 0) {
1568
            startPos = 0;
1569
        }
1570 2 1. indexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
2. indexOfIgnoreCase : Replaced integer addition with subtraction → KILLED
        final int endLimit = str.length() - searchStr.length() + 1;
1571 2 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : negated conditional → KILLED
        if (startPos > endLimit) {
1572 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1573
        }
1574 1 1. indexOfIgnoreCase : negated conditional → KILLED
        if (searchStr.length() == 0) {
1575 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return startPos;
1576
        }
1577 3 1. indexOfIgnoreCase : changed conditional boundary → SURVIVED
2. indexOfIgnoreCase : Changed increment from 1 to -1 → TIMED_OUT
3. indexOfIgnoreCase : negated conditional → KILLED
        for (int i = startPos; i < endLimit; i++) {
1578 1 1. indexOfIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, searchStr.length())) {
1579 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return i;
1580
            }
1581
        }
1582 1 1. indexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
1583
    }
1584
1585
    // LastIndexOf
1586
    //-----------------------------------------------------------------------
1587
    /**
1588
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1589
     * This method uses {@link String#lastIndexOf(int)} if possible.</p>
1590
     *
1591
     * <p>A {@code null} or empty ("") CharSequence will return {@code -1}.</p>
1592
     *
1593
     * <pre>
1594
     * StringUtils.lastIndexOf(null, *)         = -1
1595
     * StringUtils.lastIndexOf("", *)           = -1
1596
     * StringUtils.lastIndexOf("aabaabaa", 'a') = 7
1597
     * StringUtils.lastIndexOf("aabaabaa", 'b') = 5
1598
     * </pre>
1599
     *
1600
     * @param seq  the CharSequence to check, may be null
1601
     * @param searchChar  the character to find
1602
     * @return the last index of the search character,
1603
     *  -1 if no match or {@code null} string input
1604
     * @since 2.0
1605
     * @since 3.0 Changed signature from lastIndexOf(String, int) to lastIndexOf(CharSequence, int)
1606
     */
1607
    public static int lastIndexOf(final CharSequence seq, final int searchChar) {
1608 1 1. lastIndexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1609 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1610
        }
1611 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchChar, seq.length());
1612
    }
1613
1614
    /**
1615
     * <p>Finds the last index within a CharSequence from a start position,
1616
     * handling {@code null}.
1617
     * This method uses {@link String#lastIndexOf(int, int)} if possible.</p>
1618
     *
1619
     * <p>A {@code null} or empty ("") CharSequence will return {@code -1}.
1620
     * A negative start position returns {@code -1}.
1621
     * A start position greater than the string length searches the whole string.
1622
     * The search starts at the startPos and works backwards; matches starting after the start
1623
     * position are ignored.
1624
     * </p>
1625
     *
1626
     * <pre>
1627
     * StringUtils.lastIndexOf(null, *, *)          = -1
1628
     * StringUtils.lastIndexOf("", *,  *)           = -1
1629
     * StringUtils.lastIndexOf("aabaabaa", 'b', 8)  = 5
1630
     * StringUtils.lastIndexOf("aabaabaa", 'b', 4)  = 2
1631
     * StringUtils.lastIndexOf("aabaabaa", 'b', 0)  = -1
1632
     * StringUtils.lastIndexOf("aabaabaa", 'b', 9)  = 5
1633
     * StringUtils.lastIndexOf("aabaabaa", 'b', -1) = -1
1634
     * StringUtils.lastIndexOf("aabaabaa", 'a', 0)  = 0
1635
     * </pre>
1636
     *
1637
     * @param seq  the CharSequence to check, may be null
1638
     * @param searchChar  the character to find
1639
     * @param startPos  the start position
1640
     * @return the last index of the search character (always &le; startPos),
1641
     *  -1 if no match or {@code null} string input
1642
     * @since 2.0
1643
     * @since 3.0 Changed signature from lastIndexOf(String, int, int) to lastIndexOf(CharSequence, int, int)
1644
     */
1645
    public static int lastIndexOf(final CharSequence seq, final int searchChar, final int startPos) {
1646 1 1. lastIndexOf : negated conditional → KILLED
        if (isEmpty(seq)) {
1647 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1648
        }
1649 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchChar, startPos);
1650
    }
1651
1652
    /**
1653
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1654
     * This method uses {@link String#lastIndexOf(String)} if possible.</p>
1655
     *
1656
     * <p>A {@code null} CharSequence will return {@code -1}.</p>
1657
     *
1658
     * <pre>
1659
     * StringUtils.lastIndexOf(null, *)          = -1
1660
     * StringUtils.lastIndexOf(*, null)          = -1
1661
     * StringUtils.lastIndexOf("", "")           = 0
1662
     * StringUtils.lastIndexOf("aabaabaa", "a")  = 7
1663
     * StringUtils.lastIndexOf("aabaabaa", "b")  = 5
1664
     * StringUtils.lastIndexOf("aabaabaa", "ab") = 4
1665
     * StringUtils.lastIndexOf("aabaabaa", "")   = 8
1666
     * </pre>
1667
     *
1668
     * @param seq  the CharSequence to check, may be null
1669
     * @param searchSeq  the CharSequence to find, may be null
1670
     * @return the last index of the search String,
1671
     *  -1 if no match or {@code null} string input
1672
     * @since 2.0
1673
     * @since 3.0 Changed signature from lastIndexOf(String, String) to lastIndexOf(CharSequence, CharSequence)
1674
     */
1675
    public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq) {
1676 2 1. lastIndexOf : negated conditional → KILLED
2. lastIndexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1677 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1678
        }
1679 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchSeq, seq.length());
1680
    }
1681
1682
    /**
1683
     * <p>Finds the n-th last index within a String, handling {@code null}.
1684
     * This method uses {@link String#lastIndexOf(String)}.</p>
1685
     *
1686
     * <p>A {@code null} String will return {@code -1}.</p>
1687
     *
1688
     * <pre>
1689
     * StringUtils.lastOrdinalIndexOf(null, *, *)          = -1
1690
     * StringUtils.lastOrdinalIndexOf(*, null, *)          = -1
1691
     * StringUtils.lastOrdinalIndexOf("", "", *)           = 0
1692
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 1)  = 7
1693
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 2)  = 6
1694
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 1)  = 5
1695
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 2)  = 2
1696
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 1) = 4
1697
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 2) = 1
1698
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "", 1)   = 8
1699
     * StringUtils.lastOrdinalIndexOf("aabaabaa", "", 2)   = 8
1700
     * </pre>
1701
     *
1702
     * <p>Note that 'tail(CharSequence str, int n)' may be implemented as: </p>
1703
     *
1704
     * <pre>
1705
     *   str.substring(lastOrdinalIndexOf(str, "\n", n) + 1)
1706
     * </pre>
1707
     *
1708
     * @param str  the CharSequence to check, may be null
1709
     * @param searchStr  the CharSequence to find, may be null
1710
     * @param ordinal  the n-th last {@code searchStr} to find
1711
     * @return the n-th last index of the search CharSequence,
1712
     *  {@code -1} ({@code INDEX_NOT_FOUND}) if no match or {@code null} string input
1713
     * @since 2.5
1714
     * @since 3.0 Changed signature from lastOrdinalIndexOf(String, String, int) to lastOrdinalIndexOf(CharSequence, CharSequence, int)
1715
     */
1716
    public static int lastOrdinalIndexOf(final CharSequence str, final CharSequence searchStr, final int ordinal) {
1717 1 1. lastOrdinalIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ordinalIndexOf(str, searchStr, ordinal, true);
1718
    }
1719
1720
    /**
1721
     * <p>Finds the last index within a CharSequence, handling {@code null}.
1722
     * This method uses {@link String#lastIndexOf(String, int)} if possible.</p>
1723
     *
1724
     * <p>A {@code null} CharSequence will return {@code -1}.
1725
     * A negative start position returns {@code -1}.
1726
     * An empty ("") search CharSequence always matches unless the start position is negative.
1727
     * A start position greater than the string length searches the whole string.
1728
     * The search starts at the startPos and works backwards; matches starting after the start
1729
     * position are ignored.
1730
     * </p>
1731
     *
1732
     * <pre>
1733
     * StringUtils.lastIndexOf(null, *, *)          = -1
1734
     * StringUtils.lastIndexOf(*, null, *)          = -1
1735
     * StringUtils.lastIndexOf("aabaabaa", "a", 8)  = 7
1736
     * StringUtils.lastIndexOf("aabaabaa", "b", 8)  = 5
1737
     * StringUtils.lastIndexOf("aabaabaa", "ab", 8) = 4
1738
     * StringUtils.lastIndexOf("aabaabaa", "b", 9)  = 5
1739
     * StringUtils.lastIndexOf("aabaabaa", "b", -1) = -1
1740
     * StringUtils.lastIndexOf("aabaabaa", "a", 0)  = 0
1741
     * StringUtils.lastIndexOf("aabaabaa", "b", 0)  = -1
1742
     * StringUtils.lastIndexOf("aabaabaa", "b", 1)  = -1
1743
     * StringUtils.lastIndexOf("aabaabaa", "b", 2)  = 2
1744
     * StringUtils.lastIndexOf("aabaabaa", "ba", 2)  = -1
1745
     * StringUtils.lastIndexOf("aabaabaa", "ba", 2)  = 2
1746
     * </pre>
1747
     *
1748
     * @param seq  the CharSequence to check, may be null
1749
     * @param searchSeq  the CharSequence to find, may be null
1750
     * @param startPos  the start position, negative treated as zero
1751
     * @return the last index of the search CharSequence (always &le; startPos),
1752
     *  -1 if no match or {@code null} string input
1753
     * @since 2.0
1754
     * @since 3.0 Changed signature from lastIndexOf(String, String, int) to lastIndexOf(CharSequence, CharSequence, int)
1755
     */
1756
    public static int lastIndexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos) {
1757 2 1. lastIndexOf : negated conditional → KILLED
2. lastIndexOf : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1758 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1759
        }
1760 1 1. lastIndexOf : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.lastIndexOf(seq, searchSeq, startPos);
1761
    }
1762
1763
    /**
1764
     * <p>Case in-sensitive find of the last index within a CharSequence.</p>
1765
     *
1766
     * <p>A {@code null} CharSequence will return {@code -1}.
1767
     * A negative start position returns {@code -1}.
1768
     * An empty ("") search CharSequence always matches unless the start position is negative.
1769
     * A start position greater than the string length searches the whole string.</p>
1770
     *
1771
     * <pre>
1772
     * StringUtils.lastIndexOfIgnoreCase(null, *)          = -1
1773
     * StringUtils.lastIndexOfIgnoreCase(*, null)          = -1
1774
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A")  = 7
1775
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B")  = 5
1776
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB") = 4
1777
     * </pre>
1778
     *
1779
     * @param str  the CharSequence to check, may be null
1780
     * @param searchStr  the CharSequence to find, may be null
1781
     * @return the first index of the search CharSequence,
1782
     *  -1 if no match or {@code null} string input
1783
     * @since 2.5
1784
     * @since 3.0 Changed signature from lastIndexOfIgnoreCase(String, String) to lastIndexOfIgnoreCase(CharSequence, CharSequence)
1785
     */
1786
    public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1787 2 1. lastIndexOfIgnoreCase : negated conditional → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1788 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1789
        }
1790 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return lastIndexOfIgnoreCase(str, searchStr, str.length());
1791
    }
1792
1793
    /**
1794
     * <p>Case in-sensitive find of the last index within a CharSequence
1795
     * from the specified position.</p>
1796
     *
1797
     * <p>A {@code null} CharSequence will return {@code -1}.
1798
     * A negative start position returns {@code -1}.
1799
     * An empty ("") search CharSequence always matches unless the start position is negative.
1800
     * A start position greater than the string length searches the whole string.
1801
     * The search starts at the startPos and works backwards; matches starting after the start
1802
     * position are ignored.
1803
     * </p>
1804
     *
1805
     * <pre>
1806
     * StringUtils.lastIndexOfIgnoreCase(null, *, *)          = -1
1807
     * StringUtils.lastIndexOfIgnoreCase(*, null, *)          = -1
1808
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 8)  = 7
1809
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 8)  = 5
1810
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB", 8) = 4
1811
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 9)  = 5
1812
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", -1) = -1
1813
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 0)  = 0
1814
     * StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 0)  = -1
1815
     * </pre>
1816
     *
1817
     * @param str  the CharSequence to check, may be null
1818
     * @param searchStr  the CharSequence to find, may be null
1819
     * @param startPos  the start position
1820
     * @return the last index of the search CharSequence (always &le; startPos),
1821
     *  -1 if no match or {@code null} input
1822
     * @since 2.5
1823
     * @since 3.0 Changed signature from lastIndexOfIgnoreCase(String, String, int) to lastIndexOfIgnoreCase(CharSequence, CharSequence, int)
1824
     */
1825
    public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos) {
1826 2 1. lastIndexOfIgnoreCase : negated conditional → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1827 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1828
        }
1829 3 1. lastIndexOfIgnoreCase : changed conditional boundary → SURVIVED
2. lastIndexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
3. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (startPos > str.length() - searchStr.length()) {
1830 1 1. lastIndexOfIgnoreCase : Replaced integer subtraction with addition → SURVIVED
            startPos = str.length() - searchStr.length();
1831
        }
1832 2 1. lastIndexOfIgnoreCase : changed conditional boundary → KILLED
2. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (startPos < 0) {
1833 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1834
        }
1835 1 1. lastIndexOfIgnoreCase : negated conditional → KILLED
        if (searchStr.length() == 0) {
1836 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return startPos;
1837
        }
1838
1839 3 1. lastIndexOfIgnoreCase : changed conditional boundary → KILLED
2. lastIndexOfIgnoreCase : Changed increment from -1 to 1 → KILLED
3. lastIndexOfIgnoreCase : negated conditional → KILLED
        for (int i = startPos; i >= 0; i--) {
1840 1 1. lastIndexOfIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, searchStr.length())) {
1841 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return i;
1842
            }
1843
        }
1844 1 1. lastIndexOfIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
1845
    }
1846
1847
    // Contains
1848
    //-----------------------------------------------------------------------
1849
    /**
1850
     * <p>Checks if CharSequence contains a search character, handling {@code null}.
1851
     * This method uses {@link String#indexOf(int)} if possible.</p>
1852
     *
1853
     * <p>A {@code null} or empty ("") CharSequence will return {@code false}.</p>
1854
     *
1855
     * <pre>
1856
     * StringUtils.contains(null, *)    = false
1857
     * StringUtils.contains("", *)      = false
1858
     * StringUtils.contains("abc", 'a') = true
1859
     * StringUtils.contains("abc", 'z') = false
1860
     * </pre>
1861
     *
1862
     * @param seq  the CharSequence to check, may be null
1863
     * @param searchChar  the character to find
1864
     * @return true if the CharSequence contains the search character,
1865
     *  false if not or {@code null} string input
1866
     * @since 2.0
1867
     * @since 3.0 Changed signature from contains(String, int) to contains(CharSequence, int)
1868
     */
1869
    public static boolean contains(final CharSequence seq, final int searchChar) {
1870 1 1. contains : negated conditional → KILLED
        if (isEmpty(seq)) {
1871 1 1. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1872
        }
1873 3 1. contains : changed conditional boundary → KILLED
2. contains : negated conditional → KILLED
3. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchChar, 0) >= 0;
1874
    }
1875
1876
    /**
1877
     * <p>Checks if CharSequence contains a search CharSequence, handling {@code null}.
1878
     * This method uses {@link String#indexOf(String)} if possible.</p>
1879
     *
1880
     * <p>A {@code null} CharSequence will return {@code false}.</p>
1881
     *
1882
     * <pre>
1883
     * StringUtils.contains(null, *)     = false
1884
     * StringUtils.contains(*, null)     = false
1885
     * StringUtils.contains("", "")      = true
1886
     * StringUtils.contains("abc", "")   = true
1887
     * StringUtils.contains("abc", "a")  = true
1888
     * StringUtils.contains("abc", "z")  = false
1889
     * </pre>
1890
     *
1891
     * @param seq  the CharSequence to check, may be null
1892
     * @param searchSeq  the CharSequence to find, may be null
1893
     * @return true if the CharSequence contains the search CharSequence,
1894
     *  false if not or {@code null} string input
1895
     * @since 2.0
1896
     * @since 3.0 Changed signature from contains(String, String) to contains(CharSequence, CharSequence)
1897
     */
1898
    public static boolean contains(final CharSequence seq, final CharSequence searchSeq) {
1899 2 1. contains : negated conditional → KILLED
2. contains : negated conditional → KILLED
        if (seq == null || searchSeq == null) {
1900 1 1. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1901
        }
1902 3 1. contains : changed conditional boundary → KILLED
2. contains : negated conditional → KILLED
3. contains : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.indexOf(seq, searchSeq, 0) >= 0;
1903
    }
1904
1905
    /**
1906
     * <p>Checks if CharSequence contains a search CharSequence irrespective of case,
1907
     * handling {@code null}. Case-insensitivity is defined as by
1908
     * {@link String#equalsIgnoreCase(String)}.
1909
     *
1910
     * <p>A {@code null} CharSequence will return {@code false}.</p>
1911
     *
1912
     * <pre>
1913
     * StringUtils.containsIgnoreCase(null, *) = false
1914
     * StringUtils.containsIgnoreCase(*, null) = false
1915
     * StringUtils.containsIgnoreCase("", "") = true
1916
     * StringUtils.containsIgnoreCase("abc", "") = true
1917
     * StringUtils.containsIgnoreCase("abc", "a") = true
1918
     * StringUtils.containsIgnoreCase("abc", "z") = false
1919
     * StringUtils.containsIgnoreCase("abc", "A") = true
1920
     * StringUtils.containsIgnoreCase("abc", "Z") = false
1921
     * </pre>
1922
     *
1923
     * @param str  the CharSequence to check, may be null
1924
     * @param searchStr  the CharSequence to find, may be null
1925
     * @return true if the CharSequence contains the search CharSequence irrespective of
1926
     * case or false if not or {@code null} string input
1927
     * @since 3.0 Changed signature from containsIgnoreCase(String, String) to containsIgnoreCase(CharSequence, CharSequence)
1928
     */
1929
    public static boolean containsIgnoreCase(final CharSequence str, final CharSequence searchStr) {
1930 2 1. containsIgnoreCase : negated conditional → KILLED
2. containsIgnoreCase : negated conditional → KILLED
        if (str == null || searchStr == null) {
1931 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1932
        }
1933
        final int len = searchStr.length();
1934 1 1. containsIgnoreCase : Replaced integer subtraction with addition → SURVIVED
        final int max = str.length() - len;
1935 3 1. containsIgnoreCase : Changed increment from 1 to -1 → TIMED_OUT
2. containsIgnoreCase : changed conditional boundary → KILLED
3. containsIgnoreCase : negated conditional → KILLED
        for (int i = 0; i <= max; i++) {
1936 1 1. containsIgnoreCase : negated conditional → KILLED
            if (CharSequenceUtils.regionMatches(str, true, i, searchStr, 0, len)) {
1937 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
1938
            }
1939
        }
1940 1 1. containsIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1941
    }
1942
1943
    /**
1944
     * <p>Check whether the given CharSequence contains any whitespace characters.</p>
1945
     * 
1946
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
1947
     * 
1948
     * @param seq the CharSequence to check (may be {@code null})
1949
     * @return {@code true} if the CharSequence is not empty and
1950
     * contains at least 1 (breaking) whitespace character
1951
     * @since 3.0
1952
     */
1953
    // From org.springframework.util.StringUtils, under Apache License 2.0
1954
    public static boolean containsWhitespace(final CharSequence seq) {
1955 1 1. containsWhitespace : negated conditional → KILLED
        if (isEmpty(seq)) {
1956 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
1957
        }
1958
        final int strLen = seq.length();
1959 3 1. containsWhitespace : changed conditional boundary → KILLED
2. containsWhitespace : Changed increment from 1 to -1 → KILLED
3. containsWhitespace : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
1960 1 1. containsWhitespace : negated conditional → KILLED
            if (Character.isWhitespace(seq.charAt(i))) {
1961 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
1962
            }
1963
        }
1964 1 1. containsWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
1965
    }
1966
1967
    // IndexOfAny chars
1968
    //-----------------------------------------------------------------------
1969
    /**
1970
     * <p>Search a CharSequence to find the first index of any
1971
     * character in the given set of characters.</p>
1972
     *
1973
     * <p>A {@code null} String will return {@code -1}.
1974
     * A {@code null} or zero length search array will return {@code -1}.</p>
1975
     *
1976
     * <pre>
1977
     * StringUtils.indexOfAny(null, *)                = -1
1978
     * StringUtils.indexOfAny("", *)                  = -1
1979
     * StringUtils.indexOfAny(*, null)                = -1
1980
     * StringUtils.indexOfAny(*, [])                  = -1
1981
     * StringUtils.indexOfAny("zzabyycdxx",['z','a']) = 0
1982
     * StringUtils.indexOfAny("zzabyycdxx",['b','y']) = 3
1983
     * StringUtils.indexOfAny("aba", ['z'])           = -1
1984
     * </pre>
1985
     *
1986
     * @param cs  the CharSequence to check, may be null
1987
     * @param searchChars  the chars to search for, may be null
1988
     * @return the index of any of the chars, -1 if no match or null input
1989
     * @since 2.0
1990
     * @since 3.0 Changed signature from indexOfAny(String, char[]) to indexOfAny(CharSequence, char...)
1991
     */
1992
    public static int indexOfAny(final CharSequence cs, final char... searchChars) {
1993 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
1994 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
1995
        }
1996
        final int csLen = cs.length();
1997 1 1. indexOfAny : Replaced integer subtraction with addition → SURVIVED
        final int csLast = csLen - 1;
1998
        final int searchLen = searchChars.length;
1999 1 1. indexOfAny : Replaced integer subtraction with addition → SURVIVED
        final int searchLast = searchLen - 1;
2000 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2001
            final char ch = cs.charAt(i);
2002 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2003 1 1. indexOfAny : negated conditional → KILLED
                if (searchChars[j] == ch) {
2004 5 1. indexOfAny : changed conditional boundary → SURVIVED
2. indexOfAny : changed conditional boundary → SURVIVED
3. indexOfAny : negated conditional → KILLED
4. indexOfAny : negated conditional → KILLED
5. indexOfAny : negated conditional → KILLED
                    if (i < csLast && j < searchLast && Character.isHighSurrogate(ch)) {
2005
                        // ch is a supplementary character
2006 3 1. indexOfAny : Replaced integer addition with subtraction → KILLED
2. indexOfAny : Replaced integer addition with subtraction → KILLED
3. indexOfAny : negated conditional → KILLED
                        if (searchChars[j + 1] == cs.charAt(i + 1)) {
2007 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return i;
2008
                        }
2009
                    } else {
2010 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return i;
2011
                    }
2012
                }
2013
            }
2014
        }
2015 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2016
    }
2017
2018
    /**
2019
     * <p>Search a CharSequence to find the first index of any
2020
     * character in the given set of characters.</p>
2021
     *
2022
     * <p>A {@code null} String will return {@code -1}.
2023
     * A {@code null} search string will return {@code -1}.</p>
2024
     *
2025
     * <pre>
2026
     * StringUtils.indexOfAny(null, *)            = -1
2027
     * StringUtils.indexOfAny("", *)              = -1
2028
     * StringUtils.indexOfAny(*, null)            = -1
2029
     * StringUtils.indexOfAny(*, "")              = -1
2030
     * StringUtils.indexOfAny("zzabyycdxx", "za") = 0
2031
     * StringUtils.indexOfAny("zzabyycdxx", "by") = 3
2032
     * StringUtils.indexOfAny("aba","z")          = -1
2033
     * </pre>
2034
     *
2035
     * @param cs  the CharSequence to check, may be null
2036
     * @param searchChars  the chars to search for, may be null
2037
     * @return the index of any of the chars, -1 if no match or null input
2038
     * @since 2.0
2039
     * @since 3.0 Changed signature from indexOfAny(String, String) to indexOfAny(CharSequence, String)
2040
     */
2041
    public static int indexOfAny(final CharSequence cs, final String searchChars) {
2042 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (isEmpty(cs) || isEmpty(searchChars)) {
2043 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2044
        }
2045 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfAny(cs, searchChars.toCharArray());
2046
    }
2047
2048
    // ContainsAny
2049
    //-----------------------------------------------------------------------
2050
    /**
2051
     * <p>Checks if the CharSequence contains any character in the given
2052
     * set of characters.</p>
2053
     *
2054
     * <p>A {@code null} CharSequence will return {@code false}.
2055
     * A {@code null} or zero length search array will return {@code false}.</p>
2056
     *
2057
     * <pre>
2058
     * StringUtils.containsAny(null, *)                = false
2059
     * StringUtils.containsAny("", *)                  = false
2060
     * StringUtils.containsAny(*, null)                = false
2061
     * StringUtils.containsAny(*, [])                  = false
2062
     * StringUtils.containsAny("zzabyycdxx",['z','a']) = true
2063
     * StringUtils.containsAny("zzabyycdxx",['b','y']) = true
2064
     * StringUtils.containsAny("zzabyycdxx",['z','y']) = true
2065
     * StringUtils.containsAny("aba", ['z'])           = false
2066
     * </pre>
2067
     *
2068
     * @param cs  the CharSequence to check, may be null
2069
     * @param searchChars  the chars to search for, may be null
2070
     * @return the {@code true} if any of the chars are found,
2071
     * {@code false} if no match or null input
2072
     * @since 2.4
2073
     * @since 3.0 Changed signature from containsAny(String, char[]) to containsAny(CharSequence, char...)
2074
     */
2075
    public static boolean containsAny(final CharSequence cs, final char... searchChars) {
2076 2 1. containsAny : negated conditional → KILLED
2. containsAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2077 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2078
        }
2079
        final int csLength = cs.length();
2080
        final int searchLength = searchChars.length;
2081 1 1. containsAny : Replaced integer subtraction with addition → KILLED
        final int csLast = csLength - 1;
2082 1 1. containsAny : Replaced integer subtraction with addition → KILLED
        final int searchLast = searchLength - 1;
2083 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
        for (int i = 0; i < csLength; i++) {
2084
            final char ch = cs.charAt(i);
2085 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
            for (int j = 0; j < searchLength; j++) {
2086 1 1. containsAny : negated conditional → KILLED
                if (searchChars[j] == ch) {
2087 1 1. containsAny : negated conditional → KILLED
                    if (Character.isHighSurrogate(ch)) {
2088 1 1. containsAny : negated conditional → KILLED
                        if (j == searchLast) {
2089
                            // missing low surrogate, fine, like String.indexOf(String)
2090 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return true;
2091
                        }
2092 5 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Replaced integer addition with subtraction → KILLED
3. containsAny : Replaced integer addition with subtraction → KILLED
4. containsAny : negated conditional → KILLED
5. containsAny : negated conditional → KILLED
                        if (i < csLast && searchChars[j + 1] == cs.charAt(i + 1)) {
2093 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return true;
2094
                        }
2095
                    } else {
2096
                        // ch is in the Basic Multilingual Plane
2097 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return true;
2098
                    }
2099
                }
2100
            }
2101
        }
2102 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
2103
    }
2104
2105
    /**
2106
     * <p>
2107
     * Checks if the CharSequence contains any character in the given set of characters.
2108
     * </p>
2109
     *
2110
     * <p>
2111
     * A {@code null} CharSequence will return {@code false}. A {@code null} search CharSequence will return
2112
     * {@code false}.
2113
     * </p>
2114
     *
2115
     * <pre>
2116
     * StringUtils.containsAny(null, *)               = false
2117
     * StringUtils.containsAny("", *)                 = false
2118
     * StringUtils.containsAny(*, null)               = false
2119
     * StringUtils.containsAny(*, "")                 = false
2120
     * StringUtils.containsAny("zzabyycdxx", "za")    = true
2121
     * StringUtils.containsAny("zzabyycdxx", "by")    = true
2122
     * StringUtils.containsAny("zzabyycdxx", "zy")    = true
2123
     * StringUtils.containsAny("zzabyycdxx", "\tx")   = true
2124
     * StringUtils.containsAny("zzabyycdxx", "$.#yF") = true
2125
     * StringUtils.containsAny("aba","z")             = false
2126
     * </pre>
2127
     *
2128
     * @param cs
2129
     *            the CharSequence to check, may be null
2130
     * @param searchChars
2131
     *            the chars to search for, may be null
2132
     * @return the {@code true} if any of the chars are found, {@code false} if no match or null input
2133
     * @since 2.4
2134
     * @since 3.0 Changed signature from containsAny(String, String) to containsAny(CharSequence, CharSequence)
2135
     */
2136
    public static boolean containsAny(final CharSequence cs, final CharSequence searchChars) {
2137 1 1. containsAny : negated conditional → KILLED
        if (searchChars == null) {
2138 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2139
        }
2140 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsAny(cs, CharSequenceUtils.toCharArray(searchChars));
2141
    }
2142
2143
    /**
2144
     * <p>Checks if the CharSequence contains any of the CharSequences in the given array.</p>
2145
     *
2146
     * <p>
2147
     * A {@code null} {@code cs} CharSequence will return {@code false}. A {@code null} or zero
2148
     * length search array will return {@code false}.
2149
     * </p>
2150
     *
2151
     * <pre>
2152
     * StringUtils.containsAny(null, *)            = false
2153
     * StringUtils.containsAny("", *)              = false
2154
     * StringUtils.containsAny(*, null)            = false
2155
     * StringUtils.containsAny(*, [])              = false
2156
     * StringUtils.containsAny("abcd", "ab", null) = true
2157
     * StringUtils.containsAny("abcd", "ab", "cd") = true
2158
     * StringUtils.containsAny("abc", "d", "abc")  = true
2159
     * </pre>
2160
     *
2161
     * 
2162
     * @param cs The CharSequence to check, may be null
2163
     * @param searchCharSequences The array of CharSequences to search for, may be null.
2164
     * Individual CharSequences may be null as well.
2165
     * @return {@code true} if any of the search CharSequences are found, {@code false} otherwise
2166
     * @since 3.4
2167
     */
2168
    public static boolean containsAny(final CharSequence cs, final CharSequence... searchCharSequences) {
2169 2 1. containsAny : negated conditional → KILLED
2. containsAny : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchCharSequences)) {
2170 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2171
        }
2172 3 1. containsAny : changed conditional boundary → KILLED
2. containsAny : Changed increment from 1 to -1 → KILLED
3. containsAny : negated conditional → KILLED
        for (final CharSequence searchCharSequence : searchCharSequences) {
2173 1 1. containsAny : negated conditional → KILLED
            if (contains(cs, searchCharSequence)) {
2174 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
2175
            }
2176
        }
2177 1 1. containsAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
2178
    }
2179
2180
    // IndexOfAnyBut chars
2181
    //-----------------------------------------------------------------------
2182
    /**
2183
     * <p>Searches a CharSequence to find the first index of any
2184
     * character not in the given set of characters.</p>
2185
     *
2186
     * <p>A {@code null} CharSequence will return {@code -1}.
2187
     * A {@code null} or zero length search array will return {@code -1}.</p>
2188
     *
2189
     * <pre>
2190
     * StringUtils.indexOfAnyBut(null, *)                              = -1
2191
     * StringUtils.indexOfAnyBut("", *)                                = -1
2192
     * StringUtils.indexOfAnyBut(*, null)                              = -1
2193
     * StringUtils.indexOfAnyBut(*, [])                                = -1
2194
     * StringUtils.indexOfAnyBut("zzabyycdxx", new char[] {'z', 'a'} ) = 3
2195
     * StringUtils.indexOfAnyBut("aba", new char[] {'z'} )             = 0
2196
     * StringUtils.indexOfAnyBut("aba", new char[] {'a', 'b'} )        = -1
2197
2198
     * </pre>
2199
     *
2200
     * @param cs  the CharSequence to check, may be null
2201
     * @param searchChars  the chars to search for, may be null
2202
     * @return the index of any of the chars, -1 if no match or null input
2203
     * @since 2.0
2204
     * @since 3.0 Changed signature from indexOfAnyBut(String, char[]) to indexOfAnyBut(CharSequence, char...)
2205
     */
2206
    public static int indexOfAnyBut(final CharSequence cs, final char... searchChars) {
2207 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : negated conditional → KILLED
        if (isEmpty(cs) || ArrayUtils.isEmpty(searchChars)) {
2208 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2209
        }
2210
        final int csLen = cs.length();
2211 1 1. indexOfAnyBut : Replaced integer subtraction with addition → SURVIVED
        final int csLast = csLen - 1;
2212
        final int searchLen = searchChars.length;
2213 1 1. indexOfAnyBut : Replaced integer subtraction with addition → SURVIVED
        final int searchLast = searchLen - 1;
2214
        outer:
2215 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2216
            final char ch = cs.charAt(i);
2217 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2218 1 1. indexOfAnyBut : negated conditional → KILLED
                if (searchChars[j] == ch) {
2219 5 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : changed conditional boundary → SURVIVED
3. indexOfAnyBut : negated conditional → KILLED
4. indexOfAnyBut : negated conditional → KILLED
5. indexOfAnyBut : negated conditional → KILLED
                    if (i < csLast && j < searchLast && Character.isHighSurrogate(ch)) {
2220 3 1. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
2. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
3. indexOfAnyBut : negated conditional → KILLED
                        if (searchChars[j + 1] == cs.charAt(i + 1)) {
2221
                            continue outer;
2222
                        }
2223
                    } else {
2224
                        continue outer;
2225
                    }
2226
                }
2227
            }
2228 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return i;
2229
        }
2230 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2231
    }
2232
2233
    /**
2234
     * <p>Search a CharSequence to find the first index of any
2235
     * character not in the given set of characters.</p>
2236
     *
2237
     * <p>A {@code null} CharSequence will return {@code -1}.
2238
     * A {@code null} or empty search string will return {@code -1}.</p>
2239
     *
2240
     * <pre>
2241
     * StringUtils.indexOfAnyBut(null, *)            = -1
2242
     * StringUtils.indexOfAnyBut("", *)              = -1
2243
     * StringUtils.indexOfAnyBut(*, null)            = -1
2244
     * StringUtils.indexOfAnyBut(*, "")              = -1
2245
     * StringUtils.indexOfAnyBut("zzabyycdxx", "za") = 3
2246
     * StringUtils.indexOfAnyBut("zzabyycdxx", "")   = -1
2247
     * StringUtils.indexOfAnyBut("aba","ab")         = -1
2248
     * </pre>
2249
     *
2250
     * @param seq  the CharSequence to check, may be null
2251
     * @param searchChars  the chars to search for, may be null
2252
     * @return the index of any of the chars, -1 if no match or null input
2253
     * @since 2.0
2254
     * @since 3.0 Changed signature from indexOfAnyBut(String, String) to indexOfAnyBut(CharSequence, CharSequence)
2255
     */
2256
    public static int indexOfAnyBut(final CharSequence seq, final CharSequence searchChars) {
2257 2 1. indexOfAnyBut : negated conditional → KILLED
2. indexOfAnyBut : negated conditional → KILLED
        if (isEmpty(seq) || isEmpty(searchChars)) {
2258 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2259
        }
2260
        final int strLen = seq.length();
2261 3 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : Changed increment from 1 to -1 → KILLED
3. indexOfAnyBut : negated conditional → KILLED
        for (int i = 0; i < strLen; i++) {
2262
            final char ch = seq.charAt(i);
2263 2 1. indexOfAnyBut : changed conditional boundary → KILLED
2. indexOfAnyBut : negated conditional → KILLED
            final boolean chFound = CharSequenceUtils.indexOf(searchChars, ch, 0) >= 0;
2264 4 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : Replaced integer addition with subtraction → SURVIVED
3. indexOfAnyBut : negated conditional → KILLED
4. indexOfAnyBut : negated conditional → KILLED
            if (i + 1 < strLen && Character.isHighSurrogate(ch)) {
2265 1 1. indexOfAnyBut : Replaced integer addition with subtraction → KILLED
                final char ch2 = seq.charAt(i + 1);
2266 3 1. indexOfAnyBut : changed conditional boundary → SURVIVED
2. indexOfAnyBut : negated conditional → KILLED
3. indexOfAnyBut : negated conditional → KILLED
                if (chFound && CharSequenceUtils.indexOf(searchChars, ch2, 0) < 0) {
2267 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return i;
2268
                }
2269
            } else {
2270 1 1. indexOfAnyBut : negated conditional → KILLED
                if (!chFound) {
2271 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                    return i;
2272
                }
2273
            }
2274
        }
2275 1 1. indexOfAnyBut : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return INDEX_NOT_FOUND;
2276
    }
2277
2278
    // ContainsOnly
2279
    //-----------------------------------------------------------------------
2280
    /**
2281
     * <p>Checks if the CharSequence contains only certain characters.</p>
2282
     *
2283
     * <p>A {@code null} CharSequence will return {@code false}.
2284
     * A {@code null} valid character array will return {@code false}.
2285
     * An empty CharSequence (length()=0) always returns {@code true}.</p>
2286
     *
2287
     * <pre>
2288
     * StringUtils.containsOnly(null, *)       = false
2289
     * StringUtils.containsOnly(*, null)       = false
2290
     * StringUtils.containsOnly("", *)         = true
2291
     * StringUtils.containsOnly("ab", '')      = false
2292
     * StringUtils.containsOnly("abab", 'abc') = true
2293
     * StringUtils.containsOnly("ab1", 'abc')  = false
2294
     * StringUtils.containsOnly("abz", 'abc')  = false
2295
     * </pre>
2296
     *
2297
     * @param cs  the String to check, may be null
2298
     * @param valid  an array of valid chars, may be null
2299
     * @return true if it only contains valid chars and is non-null
2300
     * @since 3.0 Changed signature from containsOnly(String, char[]) to containsOnly(CharSequence, char...)
2301
     */
2302
    public static boolean containsOnly(final CharSequence cs, final char... valid) {
2303
        // All these pre-checks are to maintain API with an older version
2304 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : negated conditional → KILLED
        if (valid == null || cs == null) {
2305 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2306
        }
2307 1 1. containsOnly : negated conditional → KILLED
        if (cs.length() == 0) {
2308 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2309
        }
2310 1 1. containsOnly : negated conditional → KILLED
        if (valid.length == 0) {
2311 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2312
        }
2313 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return indexOfAnyBut(cs, valid) == INDEX_NOT_FOUND;
2314
    }
2315
2316
    /**
2317
     * <p>Checks if the CharSequence contains only certain characters.</p>
2318
     *
2319
     * <p>A {@code null} CharSequence will return {@code false}.
2320
     * A {@code null} valid character String will return {@code false}.
2321
     * An empty String (length()=0) always returns {@code true}.</p>
2322
     *
2323
     * <pre>
2324
     * StringUtils.containsOnly(null, *)       = false
2325
     * StringUtils.containsOnly(*, null)       = false
2326
     * StringUtils.containsOnly("", *)         = true
2327
     * StringUtils.containsOnly("ab", "")      = false
2328
     * StringUtils.containsOnly("abab", "abc") = true
2329
     * StringUtils.containsOnly("ab1", "abc")  = false
2330
     * StringUtils.containsOnly("abz", "abc")  = false
2331
     * </pre>
2332
     *
2333
     * @param cs  the CharSequence to check, may be null
2334
     * @param validChars  a String of valid chars, may be null
2335
     * @return true if it only contains valid chars and is non-null
2336
     * @since 2.0
2337
     * @since 3.0 Changed signature from containsOnly(String, String) to containsOnly(CharSequence, String)
2338
     */
2339
    public static boolean containsOnly(final CharSequence cs, final String validChars) {
2340 2 1. containsOnly : negated conditional → KILLED
2. containsOnly : negated conditional → KILLED
        if (cs == null || validChars == null) {
2341 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
2342
        }
2343 1 1. containsOnly : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsOnly(cs, validChars.toCharArray());
2344
    }
2345
2346
    // ContainsNone
2347
    //-----------------------------------------------------------------------
2348
    /**
2349
     * <p>Checks that the CharSequence does not contain certain characters.</p>
2350
     *
2351
     * <p>A {@code null} CharSequence will return {@code true}.
2352
     * A {@code null} invalid character array will return {@code true}.
2353
     * An empty CharSequence (length()=0) always returns true.</p>
2354
     *
2355
     * <pre>
2356
     * StringUtils.containsNone(null, *)       = true
2357
     * StringUtils.containsNone(*, null)       = true
2358
     * StringUtils.containsNone("", *)         = true
2359
     * StringUtils.containsNone("ab", '')      = true
2360
     * StringUtils.containsNone("abab", 'xyz') = true
2361
     * StringUtils.containsNone("ab1", 'xyz')  = true
2362
     * StringUtils.containsNone("abz", 'xyz')  = false
2363
     * </pre>
2364
     *
2365
     * @param cs  the CharSequence to check, may be null
2366
     * @param searchChars  an array of invalid chars, may be null
2367
     * @return true if it contains none of the invalid chars, or is null
2368
     * @since 2.0
2369
     * @since 3.0 Changed signature from containsNone(String, char[]) to containsNone(CharSequence, char...)
2370
     */
2371
    public static boolean containsNone(final CharSequence cs, final char... searchChars) {
2372 2 1. containsNone : negated conditional → KILLED
2. containsNone : negated conditional → KILLED
        if (cs == null || searchChars == null) {
2373 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2374
        }
2375
        final int csLen = cs.length();
2376 1 1. containsNone : Replaced integer subtraction with addition → KILLED
        final int csLast = csLen - 1;
2377
        final int searchLen = searchChars.length;
2378 1 1. containsNone : Replaced integer subtraction with addition → KILLED
        final int searchLast = searchLen - 1;
2379 3 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Changed increment from 1 to -1 → KILLED
3. containsNone : negated conditional → KILLED
        for (int i = 0; i < csLen; i++) {
2380
            final char ch = cs.charAt(i);
2381 3 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Changed increment from 1 to -1 → KILLED
3. containsNone : negated conditional → KILLED
            for (int j = 0; j < searchLen; j++) {
2382 1 1. containsNone : negated conditional → KILLED
                if (searchChars[j] == ch) {
2383 1 1. containsNone : negated conditional → KILLED
                    if (Character.isHighSurrogate(ch)) {
2384 1 1. containsNone : negated conditional → KILLED
                        if (j == searchLast) {
2385
                            // missing low surrogate, fine, like String.indexOf(String)
2386 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return false;
2387
                        }
2388 5 1. containsNone : changed conditional boundary → KILLED
2. containsNone : Replaced integer addition with subtraction → KILLED
3. containsNone : Replaced integer addition with subtraction → KILLED
4. containsNone : negated conditional → KILLED
5. containsNone : negated conditional → KILLED
                        if (i < csLast && searchChars[j + 1] == cs.charAt(i + 1)) {
2389 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                            return false;
2390
                        }
2391
                    } else {
2392
                        // ch is in the Basic Multilingual Plane
2393 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                        return false;
2394
                    }
2395
                }
2396
            }
2397
        }
2398 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
2399
    }
2400
2401
    /**
2402
     * <p>Checks that the CharSequence does not contain certain characters.</p>
2403
     *
2404
     * <p>A {@code null} CharSequence will return {@code true}.
2405
     * A {@code null} invalid character array will return {@code true}.
2406
     * An empty String ("") always returns true.</p>
2407
     *
2408
     * <pre>
2409
     * StringUtils.containsNone(null, *)       = true
2410
     * StringUtils.containsNone(*, null)       = true
2411
     * StringUtils.containsNone("", *)         = true
2412
     * StringUtils.containsNone("ab", "")      = true
2413
     * StringUtils.containsNone("abab", "xyz") = true
2414
     * StringUtils.containsNone("ab1", "xyz")  = true
2415
     * StringUtils.containsNone("abz", "xyz")  = false
2416
     * </pre>
2417
     *
2418
     * @param cs  the CharSequence to check, may be null
2419
     * @param invalidChars  a String of invalid chars, may be null
2420
     * @return true if it contains none of the invalid chars, or is null
2421
     * @since 2.0
2422
     * @since 3.0 Changed signature from containsNone(String, String) to containsNone(CharSequence, String)
2423
     */
2424
    public static boolean containsNone(final CharSequence cs, final String invalidChars) {
2425 2 1. containsNone : negated conditional → KILLED
2. containsNone : negated conditional → KILLED
        if (cs == null || invalidChars == null) {
2426 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return true;
2427
        }
2428 1 1. containsNone : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return containsNone(cs, invalidChars.toCharArray());
2429
    }
2430
2431
    // IndexOfAny strings
2432
    //-----------------------------------------------------------------------
2433
    /**
2434
     * <p>Find the first index of any of a set of potential substrings.</p>
2435
     *
2436
     * <p>A {@code null} CharSequence will return {@code -1}.
2437
     * A {@code null} or zero length search array will return {@code -1}.
2438
     * A {@code null} search array entry will be ignored, but a search
2439
     * array containing "" will return {@code 0} if {@code str} is not
2440
     * null. This method uses {@link String#indexOf(String)} if possible.</p>
2441
     *
2442
     * <pre>
2443
     * StringUtils.indexOfAny(null, *)                     = -1
2444
     * StringUtils.indexOfAny(*, null)                     = -1
2445
     * StringUtils.indexOfAny(*, [])                       = -1
2446
     * StringUtils.indexOfAny("zzabyycdxx", ["ab","cd"])   = 2
2447
     * StringUtils.indexOfAny("zzabyycdxx", ["cd","ab"])   = 2
2448
     * StringUtils.indexOfAny("zzabyycdxx", ["mn","op"])   = -1
2449
     * StringUtils.indexOfAny("zzabyycdxx", ["zab","aby"]) = 1
2450
     * StringUtils.indexOfAny("zzabyycdxx", [""])          = 0
2451
     * StringUtils.indexOfAny("", [""])                    = 0
2452
     * StringUtils.indexOfAny("", ["a"])                   = -1
2453
     * </pre>
2454
     *
2455
     * @param str  the CharSequence to check, may be null
2456
     * @param searchStrs  the CharSequences to search for, may be null
2457
     * @return the first index of any of the searchStrs in str, -1 if no match
2458
     * @since 3.0 Changed signature from indexOfAny(String, String[]) to indexOfAny(CharSequence, CharSequence...)
2459
     */
2460
    public static int indexOfAny(final CharSequence str, final CharSequence... searchStrs) {
2461 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : negated conditional → KILLED
        if (str == null || searchStrs == null) {
2462 1 1. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2463
        }
2464
        final int sz = searchStrs.length;
2465
2466
        // String's can't have a MAX_VALUEth index.
2467
        int ret = Integer.MAX_VALUE;
2468
2469
        int tmp = 0;
2470 3 1. indexOfAny : changed conditional boundary → KILLED
2. indexOfAny : Changed increment from 1 to -1 → KILLED
3. indexOfAny : negated conditional → KILLED
        for (final CharSequence search : searchStrs) {
2471 1 1. indexOfAny : negated conditional → KILLED
            if (search == null) {
2472
                continue;
2473
            }
2474
            tmp = CharSequenceUtils.indexOf(str, search, 0);
2475 1 1. indexOfAny : negated conditional → KILLED
            if (tmp == INDEX_NOT_FOUND) {
2476
                continue;
2477
            }
2478
2479 2 1. indexOfAny : changed conditional boundary → SURVIVED
2. indexOfAny : negated conditional → KILLED
            if (tmp < ret) {
2480
                ret = tmp;
2481
            }
2482
        }
2483
2484 2 1. indexOfAny : negated conditional → KILLED
2. indexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ret == Integer.MAX_VALUE ? INDEX_NOT_FOUND : ret;
2485
    }
2486
2487
    /**
2488
     * <p>Find the latest index of any of a set of potential substrings.</p>
2489
     *
2490
     * <p>A {@code null} CharSequence will return {@code -1}.
2491
     * A {@code null} search array will return {@code -1}.
2492
     * A {@code null} or zero length search array entry will be ignored,
2493
     * but a search array containing "" will return the length of {@code str}
2494
     * if {@code str} is not null. This method uses {@link String#indexOf(String)} if possible</p>
2495
     *
2496
     * <pre>
2497
     * StringUtils.lastIndexOfAny(null, *)                   = -1
2498
     * StringUtils.lastIndexOfAny(*, null)                   = -1
2499
     * StringUtils.lastIndexOfAny(*, [])                     = -1
2500
     * StringUtils.lastIndexOfAny(*, [null])                 = -1
2501
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["ab","cd"]) = 6
2502
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["cd","ab"]) = 6
2503
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn","op"]) = -1
2504
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn","op"]) = -1
2505
     * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn",""])   = 10
2506
     * </pre>
2507
     *
2508
     * @param str  the CharSequence to check, may be null
2509
     * @param searchStrs  the CharSequences to search for, may be null
2510
     * @return the last index of any of the CharSequences, -1 if no match
2511
     * @since 3.0 Changed signature from lastIndexOfAny(String, String[]) to lastIndexOfAny(CharSequence, CharSequence)
2512
     */
2513
    public static int lastIndexOfAny(final CharSequence str, final CharSequence... searchStrs) {
2514 2 1. lastIndexOfAny : negated conditional → KILLED
2. lastIndexOfAny : negated conditional → KILLED
        if (str == null || searchStrs == null) {
2515 1 1. lastIndexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
2516
        }
2517
        final int sz = searchStrs.length;
2518
        int ret = INDEX_NOT_FOUND;
2519
        int tmp = 0;
2520 3 1. lastIndexOfAny : changed conditional boundary → KILLED
2. lastIndexOfAny : Changed increment from 1 to -1 → KILLED
3. lastIndexOfAny : negated conditional → KILLED
        for (final CharSequence search : searchStrs) {
2521 1 1. lastIndexOfAny : negated conditional → KILLED
            if (search == null) {
2522
                continue;
2523
            }
2524
            tmp = CharSequenceUtils.lastIndexOf(str, search, str.length());
2525 2 1. lastIndexOfAny : changed conditional boundary → SURVIVED
2. lastIndexOfAny : negated conditional → KILLED
            if (tmp > ret) {
2526
                ret = tmp;
2527
            }
2528
        }
2529 1 1. lastIndexOfAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return ret;
2530
    }
2531
2532
    // Substring
2533
    //-----------------------------------------------------------------------
2534
    /**
2535
     * <p>Gets a substring from the specified String avoiding exceptions.</p>
2536
     *
2537
     * <p>A negative start position can be used to start {@code n}
2538
     * characters from the end of the String.</p>
2539
     *
2540
     * <p>A {@code null} String will return {@code null}.
2541
     * An empty ("") String will return "".</p>
2542
     *
2543
     * <pre>
2544
     * StringUtils.substring(null, *)   = null
2545
     * StringUtils.substring("", *)     = ""
2546
     * StringUtils.substring("abc", 0)  = "abc"
2547
     * StringUtils.substring("abc", 2)  = "c"
2548
     * StringUtils.substring("abc", 4)  = ""
2549
     * StringUtils.substring("abc", -2) = "bc"
2550
     * StringUtils.substring("abc", -4) = "abc"
2551
     * </pre>
2552
     *
2553
     * @param str  the String to get the substring from, may be null
2554
     * @param start  the position to start from, negative means
2555
     *  count back from the end of the String by this many characters
2556
     * @return substring from start position, {@code null} if null String input
2557
     */
2558
    public static String substring(final String str, int start) {
2559 1 1. substring : negated conditional → KILLED
        if (str == null) {
2560 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2561
        }
2562
2563
        // handle negatives, which means last n characters
2564 2 1. substring : changed conditional boundary → KILLED
2. substring : negated conditional → KILLED
        if (start < 0) {
2565 1 1. substring : Replaced integer addition with subtraction → KILLED
            start = str.length() + start; // remember start is negative
2566
        }
2567
2568 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start < 0) {
2569
            start = 0;
2570
        }
2571 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start > str.length()) {
2572 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2573
        }
2574
2575 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start);
2576
    }
2577
2578
    /**
2579
     * <p>Gets a substring from the specified String avoiding exceptions.</p>
2580
     *
2581
     * <p>A negative start position can be used to start/end {@code n}
2582
     * characters from the end of the String.</p>
2583
     *
2584
     * <p>The returned substring starts with the character in the {@code start}
2585
     * position and ends before the {@code end} position. All position counting is
2586
     * zero-based -- i.e., to start at the beginning of the string use
2587
     * {@code start = 0}. Negative start and end positions can be used to
2588
     * specify offsets relative to the end of the String.</p>
2589
     *
2590
     * <p>If {@code start} is not strictly to the left of {@code end}, ""
2591
     * is returned.</p>
2592
     *
2593
     * <pre>
2594
     * StringUtils.substring(null, *, *)    = null
2595
     * StringUtils.substring("", * ,  *)    = "";
2596
     * StringUtils.substring("abc", 0, 2)   = "ab"
2597
     * StringUtils.substring("abc", 2, 0)   = ""
2598
     * StringUtils.substring("abc", 2, 4)   = "c"
2599
     * StringUtils.substring("abc", 4, 6)   = ""
2600
     * StringUtils.substring("abc", 2, 2)   = ""
2601
     * StringUtils.substring("abc", -2, -1) = "b"
2602
     * StringUtils.substring("abc", -4, 2)  = "ab"
2603
     * </pre>
2604
     *
2605
     * @param str  the String to get the substring from, may be null
2606
     * @param start  the position to start from, negative means
2607
     *  count back from the end of the String by this many characters
2608
     * @param end  the position to end at (exclusive), negative means
2609
     *  count back from the end of the String by this many characters
2610
     * @return substring from start position to end position,
2611
     *  {@code null} if null String input
2612
     */
2613
    public static String substring(final String str, int start, int end) {
2614 1 1. substring : negated conditional → KILLED
        if (str == null) {
2615 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2616
        }
2617
2618
        // handle negatives
2619 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end < 0) {
2620 1 1. substring : Replaced integer addition with subtraction → KILLED
            end = str.length() + end; // remember end is negative
2621
        }
2622 2 1. substring : changed conditional boundary → KILLED
2. substring : negated conditional → KILLED
        if (start < 0) {
2623 1 1. substring : Replaced integer addition with subtraction → KILLED
            start = str.length() + start; // remember start is negative
2624
        }
2625
2626
        // check length next
2627 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end > str.length()) {
2628
            end = str.length();
2629
        }
2630
2631
        // if start is greater than end, return ""
2632 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start > end) {
2633 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2634
        }
2635
2636 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (start < 0) {
2637
            start = 0;
2638
        }
2639 2 1. substring : changed conditional boundary → SURVIVED
2. substring : negated conditional → KILLED
        if (end < 0) {
2640
            end = 0;
2641
        }
2642
2643 1 1. substring : mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(start, end);
2644
    }
2645
2646
    // Left/Right/Mid
2647
    //-----------------------------------------------------------------------
2648
    /**
2649
     * <p>Gets the leftmost {@code len} characters of a String.</p>
2650
     *
2651
     * <p>If {@code len} characters are not available, or the
2652
     * String is {@code null}, the String will be returned without
2653
     * an exception. An empty String is returned if len is negative.</p>
2654
     *
2655
     * <pre>
2656
     * StringUtils.left(null, *)    = null
2657
     * StringUtils.left(*, -ve)     = ""
2658
     * StringUtils.left("", *)      = ""
2659
     * StringUtils.left("abc", 0)   = ""
2660
     * StringUtils.left("abc", 2)   = "ab"
2661
     * StringUtils.left("abc", 4)   = "abc"
2662
     * </pre>
2663
     *
2664
     * @param str  the String to get the leftmost characters from, may be null
2665
     * @param len  the length of the required String
2666
     * @return the leftmost characters, {@code null} if null String input
2667
     */
2668
    public static String left(final String str, final int len) {
2669 1 1. left : negated conditional → KILLED
        if (str == null) {
2670 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2671
        }
2672 2 1. left : changed conditional boundary → SURVIVED
2. left : negated conditional → KILLED
        if (len < 0) {
2673 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2674
        }
2675 2 1. left : changed conditional boundary → SURVIVED
2. left : negated conditional → KILLED
        if (str.length() <= len) {
2676 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2677
        }
2678 1 1. left : mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, len);
2679
    }
2680
2681
    /**
2682
     * <p>Gets the rightmost {@code len} characters of a String.</p>
2683
     *
2684
     * <p>If {@code len} characters are not available, or the String
2685
     * is {@code null}, the String will be returned without an
2686
     * an exception. An empty String is returned if len is negative.</p>
2687
     *
2688
     * <pre>
2689
     * StringUtils.right(null, *)    = null
2690
     * StringUtils.right(*, -ve)     = ""
2691
     * StringUtils.right("", *)      = ""
2692
     * StringUtils.right("abc", 0)   = ""
2693
     * StringUtils.right("abc", 2)   = "bc"
2694
     * StringUtils.right("abc", 4)   = "abc"
2695
     * </pre>
2696
     *
2697
     * @param str  the String to get the rightmost characters from, may be null
2698
     * @param len  the length of the required String
2699
     * @return the rightmost characters, {@code null} if null String input
2700
     */
2701
    public static String right(final String str, final int len) {
2702 1 1. right : negated conditional → KILLED
        if (str == null) {
2703 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2704
        }
2705 2 1. right : changed conditional boundary → SURVIVED
2. right : negated conditional → KILLED
        if (len < 0) {
2706 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2707
        }
2708 2 1. right : changed conditional boundary → SURVIVED
2. right : negated conditional → KILLED
        if (str.length() <= len) {
2709 1 1. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2710
        }
2711 2 1. right : Replaced integer subtraction with addition → KILLED
2. right : mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(str.length() - len);
2712
    }
2713
2714
    /**
2715
     * <p>Gets {@code len} characters from the middle of a String.</p>
2716
     *
2717
     * <p>If {@code len} characters are not available, the remainder
2718
     * of the String will be returned without an exception. If the
2719
     * String is {@code null}, {@code null} will be returned.
2720
     * An empty String is returned if len is negative or exceeds the
2721
     * length of {@code str}.</p>
2722
     *
2723
     * <pre>
2724
     * StringUtils.mid(null, *, *)    = null
2725
     * StringUtils.mid(*, *, -ve)     = ""
2726
     * StringUtils.mid("", 0, *)      = ""
2727
     * StringUtils.mid("abc", 0, 2)   = "ab"
2728
     * StringUtils.mid("abc", 0, 4)   = "abc"
2729
     * StringUtils.mid("abc", 2, 4)   = "c"
2730
     * StringUtils.mid("abc", 4, 2)   = ""
2731
     * StringUtils.mid("abc", -2, 2)  = "ab"
2732
     * </pre>
2733
     *
2734
     * @param str  the String to get the characters from, may be null
2735
     * @param pos  the position to start from, negative treated as zero
2736
     * @param len  the length of the required String
2737
     * @return the middle characters, {@code null} if null String input
2738
     */
2739
    public static String mid(final String str, int pos, final int len) {
2740 1 1. mid : negated conditional → KILLED
        if (str == null) {
2741 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2742
        }
2743 4 1. mid : changed conditional boundary → SURVIVED
2. mid : changed conditional boundary → SURVIVED
3. mid : negated conditional → KILLED
4. mid : negated conditional → KILLED
        if (len < 0 || pos > str.length()) {
2744 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2745
        }
2746 2 1. mid : changed conditional boundary → SURVIVED
2. mid : negated conditional → KILLED
        if (pos < 0) {
2747
            pos = 0;
2748
        }
2749 3 1. mid : changed conditional boundary → SURVIVED
2. mid : Replaced integer addition with subtraction → KILLED
3. mid : negated conditional → KILLED
        if (str.length() <= pos + len) {
2750 1 1. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(pos);
2751
        }
2752 2 1. mid : Replaced integer addition with subtraction → KILLED
2. mid : mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos, pos + len);
2753
    }
2754
2755
    // SubStringAfter/SubStringBefore
2756
    //-----------------------------------------------------------------------
2757
    /**
2758
     * <p>Gets the substring before the first occurrence of a separator.
2759
     * The separator is not returned.</p>
2760
     *
2761
     * <p>A {@code null} string input will return {@code null}.
2762
     * An empty ("") string input will return the empty string.
2763
     * A {@code null} separator will return the input string.</p>
2764
     *
2765
     * <p>If nothing is found, the string input is returned.</p>
2766
     *
2767
     * <pre>
2768
     * StringUtils.substringBefore(null, *)      = null
2769
     * StringUtils.substringBefore("", *)        = ""
2770
     * StringUtils.substringBefore("abc", "a")   = ""
2771
     * StringUtils.substringBefore("abcba", "b") = "a"
2772
     * StringUtils.substringBefore("abc", "c")   = "ab"
2773
     * StringUtils.substringBefore("abc", "d")   = "abc"
2774
     * StringUtils.substringBefore("abc", "")    = ""
2775
     * StringUtils.substringBefore("abc", null)  = "abc"
2776
     * </pre>
2777
     *
2778
     * @param str  the String to get a substring from, may be null
2779
     * @param separator  the String to search for, may be null
2780
     * @return the substring before the first occurrence of the separator,
2781
     *  {@code null} if null String input
2782
     * @since 2.0
2783
     */
2784
    public static String substringBefore(final String str, final String separator) {
2785 2 1. substringBefore : negated conditional → KILLED
2. substringBefore : negated conditional → KILLED
        if (isEmpty(str) || separator == null) {
2786 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2787
        }
2788 1 1. substringBefore : negated conditional → KILLED
        if (separator.isEmpty()) {
2789 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2790
        }
2791
        final int pos = str.indexOf(separator);
2792 1 1. substringBefore : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2793 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2794
        }
2795 1 1. substringBefore : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, pos);
2796
    }
2797
2798
    /**
2799
     * <p>Gets the substring after the first occurrence of a separator.
2800
     * The separator is not returned.</p>
2801
     *
2802
     * <p>A {@code null} string input will return {@code null}.
2803
     * An empty ("") string input will return the empty string.
2804
     * A {@code null} separator will return the empty string if the
2805
     * input string is not {@code null}.</p>
2806
     *
2807
     * <p>If nothing is found, the empty string is returned.</p>
2808
     *
2809
     * <pre>
2810
     * StringUtils.substringAfter(null, *)      = null
2811
     * StringUtils.substringAfter("", *)        = ""
2812
     * StringUtils.substringAfter(*, null)      = ""
2813
     * StringUtils.substringAfter("abc", "a")   = "bc"
2814
     * StringUtils.substringAfter("abcba", "b") = "cba"
2815
     * StringUtils.substringAfter("abc", "c")   = ""
2816
     * StringUtils.substringAfter("abc", "d")   = ""
2817
     * StringUtils.substringAfter("abc", "")    = "abc"
2818
     * </pre>
2819
     *
2820
     * @param str  the String to get a substring from, may be null
2821
     * @param separator  the String to search for, may be null
2822
     * @return the substring after the first occurrence of the separator,
2823
     *  {@code null} if null String input
2824
     * @since 2.0
2825
     */
2826
    public static String substringAfter(final String str, final String separator) {
2827 1 1. substringAfter : negated conditional → KILLED
        if (isEmpty(str)) {
2828 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2829
        }
2830 1 1. substringAfter : negated conditional → KILLED
        if (separator == null) {
2831 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2832
        }
2833
        final int pos = str.indexOf(separator);
2834 1 1. substringAfter : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2835 1 1. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2836
        }
2837 2 1. substringAfter : Replaced integer addition with subtraction → KILLED
2. substringAfter : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos + separator.length());
2838
    }
2839
2840
    /**
2841
     * <p>Gets the substring before the last occurrence of a separator.
2842
     * The separator is not returned.</p>
2843
     *
2844
     * <p>A {@code null} string input will return {@code null}.
2845
     * An empty ("") string input will return the empty string.
2846
     * An empty or {@code null} separator will return the input string.</p>
2847
     *
2848
     * <p>If nothing is found, the string input is returned.</p>
2849
     *
2850
     * <pre>
2851
     * StringUtils.substringBeforeLast(null, *)      = null
2852
     * StringUtils.substringBeforeLast("", *)        = ""
2853
     * StringUtils.substringBeforeLast("abcba", "b") = "abc"
2854
     * StringUtils.substringBeforeLast("abc", "c")   = "ab"
2855
     * StringUtils.substringBeforeLast("a", "a")     = ""
2856
     * StringUtils.substringBeforeLast("a", "z")     = "a"
2857
     * StringUtils.substringBeforeLast("a", null)    = "a"
2858
     * StringUtils.substringBeforeLast("a", "")      = "a"
2859
     * </pre>
2860
     *
2861
     * @param str  the String to get a substring from, may be null
2862
     * @param separator  the String to search for, may be null
2863
     * @return the substring before the last occurrence of the separator,
2864
     *  {@code null} if null String input
2865
     * @since 2.0
2866
     */
2867
    public static String substringBeforeLast(final String str, final String separator) {
2868 2 1. substringBeforeLast : negated conditional → KILLED
2. substringBeforeLast : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(separator)) {
2869 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2870
        }
2871
        final int pos = str.lastIndexOf(separator);
2872 1 1. substringBeforeLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND) {
2873 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2874
        }
2875 1 1. substringBeforeLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, pos);
2876
    }
2877
2878
    /**
2879
     * <p>Gets the substring after the last occurrence of a separator.
2880
     * The separator is not returned.</p>
2881
     *
2882
     * <p>A {@code null} string input will return {@code null}.
2883
     * An empty ("") string input will return the empty string.
2884
     * An empty or {@code null} separator will return the empty string if
2885
     * the input string is not {@code null}.</p>
2886
     *
2887
     * <p>If nothing is found, the empty string is returned.</p>
2888
     *
2889
     * <pre>
2890
     * StringUtils.substringAfterLast(null, *)      = null
2891
     * StringUtils.substringAfterLast("", *)        = ""
2892
     * StringUtils.substringAfterLast(*, "")        = ""
2893
     * StringUtils.substringAfterLast(*, null)      = ""
2894
     * StringUtils.substringAfterLast("abc", "a")   = "bc"
2895
     * StringUtils.substringAfterLast("abcba", "b") = "a"
2896
     * StringUtils.substringAfterLast("abc", "c")   = ""
2897
     * StringUtils.substringAfterLast("a", "a")     = ""
2898
     * StringUtils.substringAfterLast("a", "z")     = ""
2899
     * </pre>
2900
     *
2901
     * @param str  the String to get a substring from, may be null
2902
     * @param separator  the String to search for, may be null
2903
     * @return the substring after the last occurrence of the separator,
2904
     *  {@code null} if null String input
2905
     * @since 2.0
2906
     */
2907
    public static String substringAfterLast(final String str, final String separator) {
2908 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(str)) {
2909 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
2910
        }
2911 1 1. substringAfterLast : negated conditional → KILLED
        if (isEmpty(separator)) {
2912 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2913
        }
2914
        final int pos = str.lastIndexOf(separator);
2915 3 1. substringAfterLast : Replaced integer subtraction with addition → SURVIVED
2. substringAfterLast : negated conditional → KILLED
3. substringAfterLast : negated conditional → KILLED
        if (pos == INDEX_NOT_FOUND || pos == str.length() - separator.length()) {
2916 1 1. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
2917
        }
2918 2 1. substringAfterLast : Replaced integer addition with subtraction → KILLED
2. substringAfterLast : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(pos + separator.length());
2919
    }
2920
2921
    // Substring between
2922
    //-----------------------------------------------------------------------
2923
    /**
2924
     * <p>Gets the String that is nested in between two instances of the
2925
     * same String.</p>
2926
     *
2927
     * <p>A {@code null} input String returns {@code null}.
2928
     * A {@code null} tag returns {@code null}.</p>
2929
     *
2930
     * <pre>
2931
     * StringUtils.substringBetween(null, *)            = null
2932
     * StringUtils.substringBetween("", "")             = ""
2933
     * StringUtils.substringBetween("", "tag")          = null
2934
     * StringUtils.substringBetween("tagabctag", null)  = null
2935
     * StringUtils.substringBetween("tagabctag", "")    = ""
2936
     * StringUtils.substringBetween("tagabctag", "tag") = "abc"
2937
     * </pre>
2938
     *
2939
     * @param str  the String containing the substring, may be null
2940
     * @param tag  the String before and after the substring, may be null
2941
     * @return the substring, {@code null} if no match
2942
     * @since 2.0
2943
     */
2944
    public static String substringBetween(final String str, final String tag) {
2945 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return substringBetween(str, tag, tag);
2946
    }
2947
2948
    /**
2949
     * <p>Gets the String that is nested in between two Strings.
2950
     * Only the first match is returned.</p>
2951
     *
2952
     * <p>A {@code null} input String returns {@code null}.
2953
     * A {@code null} open/close returns {@code null} (no match).
2954
     * An empty ("") open and close returns an empty string.</p>
2955
     *
2956
     * <pre>
2957
     * StringUtils.substringBetween("wx[b]yz", "[", "]") = "b"
2958
     * StringUtils.substringBetween(null, *, *)          = null
2959
     * StringUtils.substringBetween(*, null, *)          = null
2960
     * StringUtils.substringBetween(*, *, null)          = null
2961
     * StringUtils.substringBetween("", "", "")          = ""
2962
     * StringUtils.substringBetween("", "", "]")         = null
2963
     * StringUtils.substringBetween("", "[", "]")        = null
2964
     * StringUtils.substringBetween("yabcz", "", "")     = ""
2965
     * StringUtils.substringBetween("yabcz", "y", "z")   = "abc"
2966
     * StringUtils.substringBetween("yabczyabcz", "y", "z")   = "abc"
2967
     * </pre>
2968
     *
2969
     * @param str  the String containing the substring, may be null
2970
     * @param open  the String before the substring, may be null
2971
     * @param close  the String after the substring, may be null
2972
     * @return the substring, {@code null} if no match
2973
     * @since 2.0
2974
     */
2975
    public static String substringBetween(final String str, final String open, final String close) {
2976 3 1. substringBetween : negated conditional → KILLED
2. substringBetween : negated conditional → KILLED
3. substringBetween : negated conditional → KILLED
        if (str == null || open == null || close == null) {
2977 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
2978
        }
2979
        final int start = str.indexOf(open);
2980 1 1. substringBetween : negated conditional → KILLED
        if (start != INDEX_NOT_FOUND) {
2981 1 1. substringBetween : Replaced integer addition with subtraction → KILLED
            final int end = str.indexOf(close, start + open.length());
2982 1 1. substringBetween : negated conditional → KILLED
            if (end != INDEX_NOT_FOUND) {
2983 2 1. substringBetween : Replaced integer addition with subtraction → KILLED
2. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(start + open.length(), end);
2984
            }
2985
        }
2986 1 1. substringBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return null;
2987
    }
2988
2989
    /**
2990
     * <p>Searches a String for substrings delimited by a start and end tag,
2991
     * returning all matching substrings in an array.</p>
2992
     *
2993
     * <p>A {@code null} input String returns {@code null}.
2994
     * A {@code null} open/close returns {@code null} (no match).
2995
     * An empty ("") open/close returns {@code null} (no match).</p>
2996
     *
2997
     * <pre>
2998
     * StringUtils.substringsBetween("[a][b][c]", "[", "]") = ["a","b","c"]
2999
     * StringUtils.substringsBetween(null, *, *)            = null
3000
     * StringUtils.substringsBetween(*, null, *)            = null
3001
     * StringUtils.substringsBetween(*, *, null)            = null
3002
     * StringUtils.substringsBetween("", "[", "]")          = []
3003
     * </pre>
3004
     *
3005
     * @param str  the String containing the substrings, null returns null, empty returns empty
3006
     * @param open  the String identifying the start of the substring, empty returns null
3007
     * @param close  the String identifying the end of the substring, empty returns null
3008
     * @return a String Array of substrings, or {@code null} if no match
3009
     * @since 2.3
3010
     */
3011
    public static String[] substringsBetween(final String str, final String open, final String close) {
3012 3 1. substringsBetween : negated conditional → KILLED
2. substringsBetween : negated conditional → KILLED
3. substringsBetween : negated conditional → KILLED
        if (str == null || isEmpty(open) || isEmpty(close)) {
3013 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3014
        }
3015
        final int strLen = str.length();
3016 1 1. substringsBetween : negated conditional → KILLED
        if (strLen == 0) {
3017 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3018
        }
3019
        final int closeLen = close.length();
3020
        final int openLen = open.length();
3021
        final List<String> list = new ArrayList<>();
3022
        int pos = 0;
3023 3 1. substringsBetween : changed conditional boundary → SURVIVED
2. substringsBetween : Replaced integer subtraction with addition → SURVIVED
3. substringsBetween : negated conditional → KILLED
        while (pos < strLen - closeLen) {
3024
            int start = str.indexOf(open, pos);
3025 2 1. substringsBetween : changed conditional boundary → KILLED
2. substringsBetween : negated conditional → KILLED
            if (start < 0) {
3026
                break;
3027
            }
3028 1 1. substringsBetween : Replaced integer addition with subtraction → KILLED
            start += openLen;
3029
            final int end = str.indexOf(close, start);
3030 2 1. substringsBetween : changed conditional boundary → SURVIVED
2. substringsBetween : negated conditional → KILLED
            if (end < 0) {
3031
                break;
3032
            }
3033
            list.add(str.substring(start, end));
3034 1 1. substringsBetween : Replaced integer addition with subtraction → KILLED
            pos = end + closeLen;
3035
        }
3036 1 1. substringsBetween : negated conditional → KILLED
        if (list.isEmpty()) {
3037 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3038
        }
3039 1 1. substringsBetween : mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String [list.size()]);
3040
    }
3041
3042
    // Nested extraction
3043
    //-----------------------------------------------------------------------
3044
3045
    // Splitting
3046
    //-----------------------------------------------------------------------
3047
    /**
3048
     * <p>Splits the provided text into an array, using whitespace as the
3049
     * separator.
3050
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3051
     *
3052
     * <p>The separator is not included in the returned String array.
3053
     * Adjacent separators are treated as one separator.
3054
     * For more control over the split use the StrTokenizer class.</p>
3055
     *
3056
     * <p>A {@code null} input String returns {@code null}.</p>
3057
     *
3058
     * <pre>
3059
     * StringUtils.split(null)       = null
3060
     * StringUtils.split("")         = []
3061
     * StringUtils.split("abc def")  = ["abc", "def"]
3062
     * StringUtils.split("abc  def") = ["abc", "def"]
3063
     * StringUtils.split(" abc ")    = ["abc"]
3064
     * </pre>
3065
     *
3066
     * @param str  the String to parse, may be null
3067
     * @return an array of parsed Strings, {@code null} if null String input
3068
     */
3069
    public static String[] split(final String str) {
3070 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return split(str, null, -1);
3071
    }
3072
3073
    /**
3074
     * <p>Splits the provided text into an array, separator specified.
3075
     * This is an alternative to using StringTokenizer.</p>
3076
     *
3077
     * <p>The separator is not included in the returned String array.
3078
     * Adjacent separators are treated as one separator.
3079
     * For more control over the split use the StrTokenizer class.</p>
3080
     *
3081
     * <p>A {@code null} input String returns {@code null}.</p>
3082
     *
3083
     * <pre>
3084
     * StringUtils.split(null, *)         = null
3085
     * StringUtils.split("", *)           = []
3086
     * StringUtils.split("a.b.c", '.')    = ["a", "b", "c"]
3087
     * StringUtils.split("a..b.c", '.')   = ["a", "b", "c"]
3088
     * StringUtils.split("a:b:c", '.')    = ["a:b:c"]
3089
     * StringUtils.split("a b c", ' ')    = ["a", "b", "c"]
3090
     * </pre>
3091
     *
3092
     * @param str  the String to parse, may be null
3093
     * @param separatorChar  the character used as the delimiter
3094
     * @return an array of parsed Strings, {@code null} if null String input
3095
     * @since 2.0
3096
     */
3097
    public static String[] split(final String str, final char separatorChar) {
3098 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChar, false);
3099
    }
3100
3101
    /**
3102
     * <p>Splits the provided text into an array, separators specified.
3103
     * This is an alternative to using StringTokenizer.</p>
3104
     *
3105
     * <p>The separator is not included in the returned String array.
3106
     * Adjacent separators are treated as one separator.
3107
     * For more control over the split use the StrTokenizer class.</p>
3108
     *
3109
     * <p>A {@code null} input String returns {@code null}.
3110
     * A {@code null} separatorChars splits on whitespace.</p>
3111
     *
3112
     * <pre>
3113
     * StringUtils.split(null, *)         = null
3114
     * StringUtils.split("", *)           = []
3115
     * StringUtils.split("abc def", null) = ["abc", "def"]
3116
     * StringUtils.split("abc def", " ")  = ["abc", "def"]
3117
     * StringUtils.split("abc  def", " ") = ["abc", "def"]
3118
     * StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]
3119
     * </pre>
3120
     *
3121
     * @param str  the String to parse, may be null
3122
     * @param separatorChars  the characters used as the delimiters,
3123
     *  {@code null} splits on whitespace
3124
     * @return an array of parsed Strings, {@code null} if null String input
3125
     */
3126
    public static String[] split(final String str, final String separatorChars) {
3127 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, -1, false);
3128
    }
3129
3130
    /**
3131
     * <p>Splits the provided text into an array with a maximum length,
3132
     * separators specified.</p>
3133
     *
3134
     * <p>The separator is not included in the returned String array.
3135
     * Adjacent separators are treated as one separator.</p>
3136
     *
3137
     * <p>A {@code null} input String returns {@code null}.
3138
     * A {@code null} separatorChars splits on whitespace.</p>
3139
     *
3140
     * <p>If more than {@code max} delimited substrings are found, the last
3141
     * returned string includes all characters after the first {@code max - 1}
3142
     * returned strings (including separator characters).</p>
3143
     *
3144
     * <pre>
3145
     * StringUtils.split(null, *, *)            = null
3146
     * StringUtils.split("", *, *)              = []
3147
     * StringUtils.split("ab cd ef", null, 0)   = ["ab", "cd", "ef"]
3148
     * StringUtils.split("ab   cd ef", null, 0) = ["ab", "cd", "ef"]
3149
     * StringUtils.split("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
3150
     * StringUtils.split("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
3151
     * </pre>
3152
     *
3153
     * @param str  the String to parse, may be null
3154
     * @param separatorChars  the characters used as the delimiters,
3155
     *  {@code null} splits on whitespace
3156
     * @param max  the maximum number of elements to include in the
3157
     *  array. A zero or negative value implies no limit
3158
     * @return an array of parsed Strings, {@code null} if null String input
3159
     */
3160
    public static String[] split(final String str, final String separatorChars, final int max) {
3161 1 1. split : mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, max, false);
3162
    }
3163
3164
    /**
3165
     * <p>Splits the provided text into an array, separator string specified.</p>
3166
     *
3167
     * <p>The separator(s) will not be included in the returned String array.
3168
     * Adjacent separators are treated as one separator.</p>
3169
     *
3170
     * <p>A {@code null} input String returns {@code null}.
3171
     * A {@code null} separator splits on whitespace.</p>
3172
     *
3173
     * <pre>
3174
     * StringUtils.splitByWholeSeparator(null, *)               = null
3175
     * StringUtils.splitByWholeSeparator("", *)                 = []
3176
     * StringUtils.splitByWholeSeparator("ab de fg", null)      = ["ab", "de", "fg"]
3177
     * StringUtils.splitByWholeSeparator("ab   de fg", null)    = ["ab", "de", "fg"]
3178
     * StringUtils.splitByWholeSeparator("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
3179
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
3180
     * </pre>
3181
     *
3182
     * @param str  the String to parse, may be null
3183
     * @param separator  String containing the String to be used as a delimiter,
3184
     *  {@code null} splits on whitespace
3185
     * @return an array of parsed Strings, {@code null} if null String was input
3186
     */
3187
    public static String[] splitByWholeSeparator(final String str, final String separator) {
3188 1 1. splitByWholeSeparator : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker( str, separator, -1, false ) ;
3189
    }
3190
3191
    /**
3192
     * <p>Splits the provided text into an array, separator string specified.
3193
     * Returns a maximum of {@code max} substrings.</p>
3194
     *
3195
     * <p>The separator(s) will not be included in the returned String array.
3196
     * Adjacent separators are treated as one separator.</p>
3197
     *
3198
     * <p>A {@code null} input String returns {@code null}.
3199
     * A {@code null} separator splits on whitespace.</p>
3200
     *
3201
     * <pre>
3202
     * StringUtils.splitByWholeSeparator(null, *, *)               = null
3203
     * StringUtils.splitByWholeSeparator("", *, *)                 = []
3204
     * StringUtils.splitByWholeSeparator("ab de fg", null, 0)      = ["ab", "de", "fg"]
3205
     * StringUtils.splitByWholeSeparator("ab   de fg", null, 0)    = ["ab", "de", "fg"]
3206
     * StringUtils.splitByWholeSeparator("ab:cd:ef", ":", 2)       = ["ab", "cd:ef"]
3207
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 5) = ["ab", "cd", "ef"]
3208
     * StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 2) = ["ab", "cd-!-ef"]
3209
     * </pre>
3210
     *
3211
     * @param str  the String to parse, may be null
3212
     * @param separator  String containing the String to be used as a delimiter,
3213
     *  {@code null} splits on whitespace
3214
     * @param max  the maximum number of elements to include in the returned
3215
     *  array. A zero or negative value implies no limit.
3216
     * @return an array of parsed Strings, {@code null} if null String was input
3217
     */
3218
    public static String[] splitByWholeSeparator( final String str, final String separator, final int max) {
3219 1 1. splitByWholeSeparator : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, max, false);
3220
    }
3221
3222
    /**
3223
     * <p>Splits the provided text into an array, separator string specified. </p>
3224
     *
3225
     * <p>The separator is not included in the returned String array.
3226
     * Adjacent separators are treated as separators for empty tokens.
3227
     * For more control over the split use the StrTokenizer class.</p>
3228
     *
3229
     * <p>A {@code null} input String returns {@code null}.
3230
     * A {@code null} separator splits on whitespace.</p>
3231
     *
3232
     * <pre>
3233
     * StringUtils.splitByWholeSeparatorPreserveAllTokens(null, *)               = null
3234
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("", *)                 = []
3235
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null)      = ["ab", "de", "fg"]
3236
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null)    = ["ab", "", "", "de", "fg"]
3237
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":")       = ["ab", "cd", "ef"]
3238
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
3239
     * </pre>
3240
     *
3241
     * @param str  the String to parse, may be null
3242
     * @param separator  String containing the String to be used as a delimiter,
3243
     *  {@code null} splits on whitespace
3244
     * @return an array of parsed Strings, {@code null} if null String was input
3245
     * @since 2.4
3246
     */
3247
    public static String[] splitByWholeSeparatorPreserveAllTokens(final String str, final String separator) {
3248 1 1. splitByWholeSeparatorPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, -1, true);
3249
    }
3250
3251
    /**
3252
     * <p>Splits the provided text into an array, separator string specified.
3253
     * Returns a maximum of {@code max} substrings.</p>
3254
     *
3255
     * <p>The separator is not included in the returned String array.
3256
     * Adjacent separators are treated as separators for empty tokens.
3257
     * For more control over the split use the StrTokenizer class.</p>
3258
     *
3259
     * <p>A {@code null} input String returns {@code null}.
3260
     * A {@code null} separator splits on whitespace.</p>
3261
     *
3262
     * <pre>
3263
     * StringUtils.splitByWholeSeparatorPreserveAllTokens(null, *, *)               = null
3264
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("", *, *)                 = []
3265
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null, 0)      = ["ab", "de", "fg"]
3266
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab   de fg", null, 0)    = ["ab", "", "", "de", "fg"]
3267
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab:cd:ef", ":", 2)       = ["ab", "cd:ef"]
3268
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-", 5) = ["ab", "cd", "ef"]
3269
     * StringUtils.splitByWholeSeparatorPreserveAllTokens("ab-!-cd-!-ef", "-!-", 2) = ["ab", "cd-!-ef"]
3270
     * </pre>
3271
     *
3272
     * @param str  the String to parse, may be null
3273
     * @param separator  String containing the String to be used as a delimiter,
3274
     *  {@code null} splits on whitespace
3275
     * @param max  the maximum number of elements to include in the returned
3276
     *  array. A zero or negative value implies no limit.
3277
     * @return an array of parsed Strings, {@code null} if null String was input
3278
     * @since 2.4
3279
     */
3280
    public static String[] splitByWholeSeparatorPreserveAllTokens(final String str, final String separator, final int max) {
3281 1 1. splitByWholeSeparatorPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByWholeSeparatorWorker(str, separator, max, true);
3282
    }
3283
3284
    /**
3285
     * Performs the logic for the {@code splitByWholeSeparatorPreserveAllTokens} methods.
3286
     *
3287
     * @param str  the String to parse, may be {@code null}
3288
     * @param separator  String containing the String to be used as a delimiter,
3289
     *  {@code null} splits on whitespace
3290
     * @param max  the maximum number of elements to include in the returned
3291
     *  array. A zero or negative value implies no limit.
3292
     * @param preserveAllTokens if {@code true}, adjacent separators are
3293
     * treated as empty token separators; if {@code false}, adjacent
3294
     * separators are treated as one separator.
3295
     * @return an array of parsed Strings, {@code null} if null String input
3296
     * @since 2.4
3297
     */
3298
    private static String[] splitByWholeSeparatorWorker(
3299
            final String str, final String separator, final int max, final boolean preserveAllTokens) {
3300 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (str == null) {
3301 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3302
        }
3303
3304
        final int len = str.length();
3305
3306 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (len == 0) {
3307 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3308
        }
3309
3310 2 1. splitByWholeSeparatorWorker : negated conditional → KILLED
2. splitByWholeSeparatorWorker : negated conditional → KILLED
        if (separator == null || EMPTY.equals(separator)) {
3311
            // Split on whitespace.
3312 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return splitWorker(str, null, max, preserveAllTokens);
3313
        }
3314
3315
        final int separatorLength = separator.length();
3316
3317
        final ArrayList<String> substrings = new ArrayList<>();
3318
        int numberOfSubstrings = 0;
3319
        int beg = 0;
3320
        int end = 0;
3321 2 1. splitByWholeSeparatorWorker : changed conditional boundary → TIMED_OUT
2. splitByWholeSeparatorWorker : negated conditional → KILLED
        while (end < len) {
3322
            end = str.indexOf(separator, beg);
3323
3324 2 1. splitByWholeSeparatorWorker : changed conditional boundary → TIMED_OUT
2. splitByWholeSeparatorWorker : negated conditional → KILLED
            if (end > -1) {
3325 2 1. splitByWholeSeparatorWorker : changed conditional boundary → KILLED
2. splitByWholeSeparatorWorker : negated conditional → KILLED
                if (end > beg) {
3326 1 1. splitByWholeSeparatorWorker : Changed increment from 1 to -1 → KILLED
                    numberOfSubstrings += 1;
3327
3328 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                    if (numberOfSubstrings == max) {
3329
                        end = len;
3330
                        substrings.add(str.substring(beg));
3331
                    } else {
3332
                        // The following is OK, because String.substring( beg, end ) excludes
3333
                        // the character at the position 'end'.
3334
                        substrings.add(str.substring(beg, end));
3335
3336
                        // Set the starting point for the next search.
3337
                        // The following is equivalent to beg = end + (separatorLength - 1) + 1,
3338
                        // which is the right calculation:
3339 1 1. splitByWholeSeparatorWorker : Replaced integer addition with subtraction → KILLED
                        beg = end + separatorLength;
3340
                    }
3341
                } else {
3342
                    // We found a consecutive occurrence of the separator, so skip it.
3343 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                    if (preserveAllTokens) {
3344 1 1. splitByWholeSeparatorWorker : Changed increment from 1 to -1 → KILLED
                        numberOfSubstrings += 1;
3345 1 1. splitByWholeSeparatorWorker : negated conditional → KILLED
                        if (numberOfSubstrings == max) {
3346
                            end = len;
3347
                            substrings.add(str.substring(beg));
3348
                        } else {
3349
                            substrings.add(EMPTY);
3350
                        }
3351
                    }
3352 1 1. splitByWholeSeparatorWorker : Replaced integer addition with subtraction → TIMED_OUT
                    beg = end + separatorLength;
3353
                }
3354
            } else {
3355
                // String.substring( beg ) goes from 'beg' to the end of the String.
3356
                substrings.add(str.substring(beg));
3357
                end = len;
3358
            }
3359
        }
3360
3361 1 1. splitByWholeSeparatorWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return substrings.toArray(new String[substrings.size()]);
3362
    }
3363
3364
    // -----------------------------------------------------------------------
3365
    /**
3366
     * <p>Splits the provided text into an array, using whitespace as the
3367
     * separator, preserving all tokens, including empty tokens created by
3368
     * adjacent separators. This is an alternative to using StringTokenizer.
3369
     * Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
3370
     *
3371
     * <p>The separator is not included in the returned String array.
3372
     * Adjacent separators are treated as separators for empty tokens.
3373
     * For more control over the split use the StrTokenizer class.</p>
3374
     *
3375
     * <p>A {@code null} input String returns {@code null}.</p>
3376
     *
3377
     * <pre>
3378
     * StringUtils.splitPreserveAllTokens(null)       = null
3379
     * StringUtils.splitPreserveAllTokens("")         = []
3380
     * StringUtils.splitPreserveAllTokens("abc def")  = ["abc", "def"]
3381
     * StringUtils.splitPreserveAllTokens("abc  def") = ["abc", "", "def"]
3382
     * StringUtils.splitPreserveAllTokens(" abc ")    = ["", "abc", ""]
3383
     * </pre>
3384
     *
3385
     * @param str  the String to parse, may be {@code null}
3386
     * @return an array of parsed Strings, {@code null} if null String input
3387
     * @since 2.1
3388
     */
3389
    public static String[] splitPreserveAllTokens(final String str) {
3390 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, null, -1, true);
3391
    }
3392
3393
    /**
3394
     * <p>Splits the provided text into an array, separator specified,
3395
     * preserving all tokens, including empty tokens created by adjacent
3396
     * separators. This is an alternative to using StringTokenizer.</p>
3397
     *
3398
     * <p>The separator is not included in the returned String array.
3399
     * Adjacent separators are treated as separators for empty tokens.
3400
     * For more control over the split use the StrTokenizer class.</p>
3401
     *
3402
     * <p>A {@code null} input String returns {@code null}.</p>
3403
     *
3404
     * <pre>
3405
     * StringUtils.splitPreserveAllTokens(null, *)         = null
3406
     * StringUtils.splitPreserveAllTokens("", *)           = []
3407
     * StringUtils.splitPreserveAllTokens("a.b.c", '.')    = ["a", "b", "c"]
3408
     * StringUtils.splitPreserveAllTokens("a..b.c", '.')   = ["a", "", "b", "c"]
3409
     * StringUtils.splitPreserveAllTokens("a:b:c", '.')    = ["a:b:c"]
3410
     * StringUtils.splitPreserveAllTokens("a\tb\nc", null) = ["a", "b", "c"]
3411
     * StringUtils.splitPreserveAllTokens("a b c", ' ')    = ["a", "b", "c"]
3412
     * StringUtils.splitPreserveAllTokens("a b c ", ' ')   = ["a", "b", "c", ""]
3413
     * StringUtils.splitPreserveAllTokens("a b c  ", ' ')   = ["a", "b", "c", "", ""]
3414
     * StringUtils.splitPreserveAllTokens(" a b c", ' ')   = ["", a", "b", "c"]
3415
     * StringUtils.splitPreserveAllTokens("  a b c", ' ')  = ["", "", a", "b", "c"]
3416
     * StringUtils.splitPreserveAllTokens(" a b c ", ' ')  = ["", a", "b", "c", ""]
3417
     * </pre>
3418
     *
3419
     * @param str  the String to parse, may be {@code null}
3420
     * @param separatorChar  the character used as the delimiter,
3421
     *  {@code null} splits on whitespace
3422
     * @return an array of parsed Strings, {@code null} if null String input
3423
     * @since 2.1
3424
     */
3425
    public static String[] splitPreserveAllTokens(final String str, final char separatorChar) {
3426 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChar, true);
3427
    }
3428
3429
    /**
3430
     * Performs the logic for the {@code split} and
3431
     * {@code splitPreserveAllTokens} methods that do not return a
3432
     * maximum array length.
3433
     *
3434
     * @param str  the String to parse, may be {@code null}
3435
     * @param separatorChar the separate character
3436
     * @param preserveAllTokens if {@code true}, adjacent separators are
3437
     * treated as empty token separators; if {@code false}, adjacent
3438
     * separators are treated as one separator.
3439
     * @return an array of parsed Strings, {@code null} if null String input
3440
     */
3441
    private static String[] splitWorker(final String str, final char separatorChar, final boolean preserveAllTokens) {
3442
        // Performance tuned for 2.0 (JDK1.4)
3443
3444 1 1. splitWorker : negated conditional → KILLED
        if (str == null) {
3445 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3446
        }
3447
        final int len = str.length();
3448 1 1. splitWorker : negated conditional → KILLED
        if (len == 0) {
3449 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3450
        }
3451
        final List<String> list = new ArrayList<>();
3452
        int i = 0, start = 0;
3453
        boolean match = false;
3454
        boolean lastMatch = false;
3455 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
        while (i < len) {
3456 1 1. splitWorker : negated conditional → KILLED
            if (str.charAt(i) == separatorChar) {
3457 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                if (match || preserveAllTokens) {
3458
                    list.add(str.substring(start, i));
3459
                    match = false;
3460
                    lastMatch = true;
3461
                }
3462 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                start = ++i;
3463
                continue;
3464
            }
3465
            lastMatch = false;
3466
            match = true;
3467 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
            i++;
3468
        }
3469 3 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
3. splitWorker : negated conditional → KILLED
        if (match || preserveAllTokens && lastMatch) {
3470
            list.add(str.substring(start, i));
3471
        }
3472 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3473
    }
3474
3475
    /**
3476
     * <p>Splits the provided text into an array, separators specified,
3477
     * preserving all tokens, including empty tokens created by adjacent
3478
     * separators. This is an alternative to using StringTokenizer.</p>
3479
     *
3480
     * <p>The separator is not included in the returned String array.
3481
     * Adjacent separators are treated as separators for empty tokens.
3482
     * For more control over the split use the StrTokenizer class.</p>
3483
     *
3484
     * <p>A {@code null} input String returns {@code null}.
3485
     * A {@code null} separatorChars splits on whitespace.</p>
3486
     *
3487
     * <pre>
3488
     * StringUtils.splitPreserveAllTokens(null, *)           = null
3489
     * StringUtils.splitPreserveAllTokens("", *)             = []
3490
     * StringUtils.splitPreserveAllTokens("abc def", null)   = ["abc", "def"]
3491
     * StringUtils.splitPreserveAllTokens("abc def", " ")    = ["abc", "def"]
3492
     * StringUtils.splitPreserveAllTokens("abc  def", " ")   = ["abc", "", def"]
3493
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":")   = ["ab", "cd", "ef"]
3494
     * StringUtils.splitPreserveAllTokens("ab:cd:ef:", ":")  = ["ab", "cd", "ef", ""]
3495
     * StringUtils.splitPreserveAllTokens("ab:cd:ef::", ":") = ["ab", "cd", "ef", "", ""]
3496
     * StringUtils.splitPreserveAllTokens("ab::cd:ef", ":")  = ["ab", "", cd", "ef"]
3497
     * StringUtils.splitPreserveAllTokens(":cd:ef", ":")     = ["", cd", "ef"]
3498
     * StringUtils.splitPreserveAllTokens("::cd:ef", ":")    = ["", "", cd", "ef"]
3499
     * StringUtils.splitPreserveAllTokens(":cd:ef:", ":")    = ["", cd", "ef", ""]
3500
     * </pre>
3501
     *
3502
     * @param str  the String to parse, may be {@code null}
3503
     * @param separatorChars  the characters used as the delimiters,
3504
     *  {@code null} splits on whitespace
3505
     * @return an array of parsed Strings, {@code null} if null String input
3506
     * @since 2.1
3507
     */
3508
    public static String[] splitPreserveAllTokens(final String str, final String separatorChars) {
3509 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, -1, true);
3510
    }
3511
3512
    /**
3513
     * <p>Splits the provided text into an array with a maximum length,
3514
     * separators specified, preserving all tokens, including empty tokens
3515
     * created by adjacent separators.</p>
3516
     *
3517
     * <p>The separator is not included in the returned String array.
3518
     * Adjacent separators are treated as separators for empty tokens.
3519
     * Adjacent separators are treated as one separator.</p>
3520
     *
3521
     * <p>A {@code null} input String returns {@code null}.
3522
     * A {@code null} separatorChars splits on whitespace.</p>
3523
     *
3524
     * <p>If more than {@code max} delimited substrings are found, the last
3525
     * returned string includes all characters after the first {@code max - 1}
3526
     * returned strings (including separator characters).</p>
3527
     *
3528
     * <pre>
3529
     * StringUtils.splitPreserveAllTokens(null, *, *)            = null
3530
     * StringUtils.splitPreserveAllTokens("", *, *)              = []
3531
     * StringUtils.splitPreserveAllTokens("ab de fg", null, 0)   = ["ab", "cd", "ef"]
3532
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 0) = ["ab", "cd", "ef"]
3533
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
3534
     * StringUtils.splitPreserveAllTokens("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
3535
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 2) = ["ab", "  de fg"]
3536
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 3) = ["ab", "", " de fg"]
3537
     * StringUtils.splitPreserveAllTokens("ab   de fg", null, 4) = ["ab", "", "", "de fg"]
3538
     * </pre>
3539
     *
3540
     * @param str  the String to parse, may be {@code null}
3541
     * @param separatorChars  the characters used as the delimiters,
3542
     *  {@code null} splits on whitespace
3543
     * @param max  the maximum number of elements to include in the
3544
     *  array. A zero or negative value implies no limit
3545
     * @return an array of parsed Strings, {@code null} if null String input
3546
     * @since 2.1
3547
     */
3548
    public static String[] splitPreserveAllTokens(final String str, final String separatorChars, final int max) {
3549 1 1. splitPreserveAllTokens : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitWorker(str, separatorChars, max, true);
3550
    }
3551
3552
    /**
3553
     * Performs the logic for the {@code split} and
3554
     * {@code splitPreserveAllTokens} methods that return a maximum array
3555
     * length.
3556
     *
3557
     * @param str  the String to parse, may be {@code null}
3558
     * @param separatorChars the separate character
3559
     * @param max  the maximum number of elements to include in the
3560
     *  array. A zero or negative value implies no limit.
3561
     * @param preserveAllTokens if {@code true}, adjacent separators are
3562
     * treated as empty token separators; if {@code false}, adjacent
3563
     * separators are treated as one separator.
3564
     * @return an array of parsed Strings, {@code null} if null String input
3565
     */
3566
    private static String[] splitWorker(final String str, final String separatorChars, final int max, final boolean preserveAllTokens) {
3567
        // Performance tuned for 2.0 (JDK1.4)
3568
        // Direct code is quicker than StringTokenizer.
3569
        // Also, StringTokenizer uses isSpace() not isWhitespace()
3570
3571 1 1. splitWorker : negated conditional → KILLED
        if (str == null) {
3572 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3573
        }
3574
        final int len = str.length();
3575 1 1. splitWorker : negated conditional → KILLED
        if (len == 0) {
3576 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3577
        }
3578
        final List<String> list = new ArrayList<>();
3579
        int sizePlus1 = 1;
3580
        int i = 0, start = 0;
3581
        boolean match = false;
3582
        boolean lastMatch = false;
3583 1 1. splitWorker : negated conditional → KILLED
        if (separatorChars == null) {
3584
            // Null separator means use whitespace
3585 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3586 1 1. splitWorker : negated conditional → KILLED
                if (Character.isWhitespace(str.charAt(i))) {
3587 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3588
                        lastMatch = true;
3589 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3590
                            i = len;
3591
                            lastMatch = false;
3592
                        }
3593
                        list.add(str.substring(start, i));
3594
                        match = false;
3595
                    }
3596 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3597
                    continue;
3598
                }
3599
                lastMatch = false;
3600
                match = true;
3601 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3602
            }
3603 1 1. splitWorker : negated conditional → SURVIVED
        } else if (separatorChars.length() == 1) {
3604
            // Optimise 1 character case
3605
            final char sep = separatorChars.charAt(0);
3606 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3607 1 1. splitWorker : negated conditional → KILLED
                if (str.charAt(i) == sep) {
3608 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3609
                        lastMatch = true;
3610 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3611
                            i = len;
3612
                            lastMatch = false;
3613
                        }
3614
                        list.add(str.substring(start, i));
3615
                        match = false;
3616
                    }
3617 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3618
                    continue;
3619
                }
3620
                lastMatch = false;
3621
                match = true;
3622 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3623
            }
3624
        } else {
3625
            // standard case
3626 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
            while (i < len) {
3627 2 1. splitWorker : changed conditional boundary → KILLED
2. splitWorker : negated conditional → KILLED
                if (separatorChars.indexOf(str.charAt(i)) >= 0) {
3628 2 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
                    if (match || preserveAllTokens) {
3629
                        lastMatch = true;
3630 2 1. splitWorker : Changed increment from 1 to -1 → KILLED
2. splitWorker : negated conditional → KILLED
                        if (sizePlus1++ == max) {
3631
                            i = len;
3632
                            lastMatch = false;
3633
                        }
3634
                        list.add(str.substring(start, i));
3635
                        match = false;
3636
                    }
3637 1 1. splitWorker : Changed increment from 1 to -1 → TIMED_OUT
                    start = ++i;
3638
                    continue;
3639
                }
3640
                lastMatch = false;
3641
                match = true;
3642 1 1. splitWorker : Changed increment from 1 to -1 → KILLED
                i++;
3643
            }
3644
        }
3645 3 1. splitWorker : negated conditional → KILLED
2. splitWorker : negated conditional → KILLED
3. splitWorker : negated conditional → KILLED
        if (match || preserveAllTokens && lastMatch) {
3646
            list.add(str.substring(start, i));
3647
        }
3648 1 1. splitWorker : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3649
    }
3650
3651
    /**
3652
     * <p>Splits a String by Character type as returned by
3653
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3654
     * characters of the same type are returned as complete tokens.
3655
     * <pre>
3656
     * StringUtils.splitByCharacterType(null)         = null
3657
     * StringUtils.splitByCharacterType("")           = []
3658
     * StringUtils.splitByCharacterType("ab de fg")   = ["ab", " ", "de", " ", "fg"]
3659
     * StringUtils.splitByCharacterType("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
3660
     * StringUtils.splitByCharacterType("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
3661
     * StringUtils.splitByCharacterType("number5")    = ["number", "5"]
3662
     * StringUtils.splitByCharacterType("fooBar")     = ["foo", "B", "ar"]
3663
     * StringUtils.splitByCharacterType("foo200Bar")  = ["foo", "200", "B", "ar"]
3664
     * StringUtils.splitByCharacterType("ASFRules")   = ["ASFR", "ules"]
3665
     * </pre>
3666
     * @param str the String to split, may be {@code null}
3667
     * @return an array of parsed Strings, {@code null} if null String input
3668
     * @since 2.4
3669
     */
3670
    public static String[] splitByCharacterType(final String str) {
3671 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByCharacterType(str, false);
3672
    }
3673
3674
    /**
3675
     * <p>Splits a String by Character type as returned by
3676
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3677
     * characters of the same type are returned as complete tokens, with the
3678
     * following exception: the character of type
3679
     * {@code Character.UPPERCASE_LETTER}, if any, immediately
3680
     * preceding a token of type {@code Character.LOWERCASE_LETTER}
3681
     * will belong to the following token rather than to the preceding, if any,
3682
     * {@code Character.UPPERCASE_LETTER} token.
3683
     * <pre>
3684
     * StringUtils.splitByCharacterTypeCamelCase(null)         = null
3685
     * StringUtils.splitByCharacterTypeCamelCase("")           = []
3686
     * StringUtils.splitByCharacterTypeCamelCase("ab de fg")   = ["ab", " ", "de", " ", "fg"]
3687
     * StringUtils.splitByCharacterTypeCamelCase("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
3688
     * StringUtils.splitByCharacterTypeCamelCase("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
3689
     * StringUtils.splitByCharacterTypeCamelCase("number5")    = ["number", "5"]
3690
     * StringUtils.splitByCharacterTypeCamelCase("fooBar")     = ["foo", "Bar"]
3691
     * StringUtils.splitByCharacterTypeCamelCase("foo200Bar")  = ["foo", "200", "Bar"]
3692
     * StringUtils.splitByCharacterTypeCamelCase("ASFRules")   = ["ASF", "Rules"]
3693
     * </pre>
3694
     * @param str the String to split, may be {@code null}
3695
     * @return an array of parsed Strings, {@code null} if null String input
3696
     * @since 2.4
3697
     */
3698
    public static String[] splitByCharacterTypeCamelCase(final String str) {
3699 1 1. splitByCharacterTypeCamelCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterTypeCamelCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return splitByCharacterType(str, true);
3700
    }
3701
3702
    /**
3703
     * <p>Splits a String by Character type as returned by
3704
     * {@code java.lang.Character.getType(char)}. Groups of contiguous
3705
     * characters of the same type are returned as complete tokens, with the
3706
     * following exception: if {@code camelCase} is {@code true},
3707
     * the character of type {@code Character.UPPERCASE_LETTER}, if any,
3708
     * immediately preceding a token of type {@code Character.LOWERCASE_LETTER}
3709
     * will belong to the following token rather than to the preceding, if any,
3710
     * {@code Character.UPPERCASE_LETTER} token.
3711
     * @param str the String to split, may be {@code null}
3712
     * @param camelCase whether to use so-called "camel-case" for letter types
3713
     * @return an array of parsed Strings, {@code null} if null String input
3714
     * @since 2.4
3715
     */
3716
    private static String[] splitByCharacterType(final String str, final boolean camelCase) {
3717 1 1. splitByCharacterType : negated conditional → KILLED
        if (str == null) {
3718 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3719
        }
3720 1 1. splitByCharacterType : negated conditional → KILLED
        if (str.isEmpty()) {
3721 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_STRING_ARRAY;
3722
        }
3723
        final char[] c = str.toCharArray();
3724
        final List<String> list = new ArrayList<>();
3725
        int tokenStart = 0;
3726
        int currentType = Character.getType(c[tokenStart]);
3727 4 1. splitByCharacterType : changed conditional boundary → KILLED
2. splitByCharacterType : Changed increment from 1 to -1 → KILLED
3. splitByCharacterType : Replaced integer addition with subtraction → KILLED
4. splitByCharacterType : negated conditional → KILLED
        for (int pos = tokenStart + 1; pos < c.length; pos++) {
3728
            final int type = Character.getType(c[pos]);
3729 1 1. splitByCharacterType : negated conditional → KILLED
            if (type == currentType) {
3730
                continue;
3731
            }
3732 3 1. splitByCharacterType : negated conditional → KILLED
2. splitByCharacterType : negated conditional → KILLED
3. splitByCharacterType : negated conditional → KILLED
            if (camelCase && type == Character.LOWERCASE_LETTER && currentType == Character.UPPERCASE_LETTER) {
3733 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
                final int newTokenStart = pos - 1;
3734 1 1. splitByCharacterType : negated conditional → KILLED
                if (newTokenStart != tokenStart) {
3735 1 1. splitByCharacterType : Replaced integer subtraction with addition → SURVIVED
                    list.add(new String(c, tokenStart, newTokenStart - tokenStart));
3736
                    tokenStart = newTokenStart;
3737
                }
3738
            } else {
3739 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
                list.add(new String(c, tokenStart, pos - tokenStart));
3740
                tokenStart = pos;
3741
            }
3742
            currentType = type;
3743
        }
3744 1 1. splitByCharacterType : Replaced integer subtraction with addition → KILLED
        list.add(new String(c, tokenStart, c.length - tokenStart));
3745 1 1. splitByCharacterType : mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return list.toArray(new String[list.size()]);
3746
    }
3747
3748
    // Joining
3749
    //-----------------------------------------------------------------------
3750
    /**
3751
     * <p>Joins the elements of the provided array into a single String
3752
     * containing the provided list of elements.</p>
3753
     *
3754
     * <p>No separator is added to the joined String.
3755
     * Null objects or empty strings within the array are represented by
3756
     * empty strings.</p>
3757
     *
3758
     * <pre>
3759
     * StringUtils.join(null)            = null
3760
     * StringUtils.join([])              = ""
3761
     * StringUtils.join([null])          = ""
3762
     * StringUtils.join(["a", "b", "c"]) = "abc"
3763
     * StringUtils.join([null, "", "a"]) = "a"
3764
     * </pre>
3765
     *
3766
     * @param <T> the specific type of values to join together
3767
     * @param elements  the values to join together, may be null
3768
     * @return the joined String, {@code null} if null array input
3769
     * @since 2.0
3770
     * @since 3.0 Changed signature to use varargs
3771
     */
3772
    @SafeVarargs
3773
    public static <T> String join(final T... elements) {
3774 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(elements, null);
3775
    }
3776
3777
    /**
3778
     * <p>Joins the elements of the provided array into a single String
3779
     * containing the provided list of elements.</p>
3780
     *
3781
     * <p>No delimiter is added before or after the list.
3782
     * Null objects or empty strings within the array are represented by
3783
     * empty strings.</p>
3784
     *
3785
     * <pre>
3786
     * StringUtils.join(null, *)               = null
3787
     * StringUtils.join([], *)                 = ""
3788
     * StringUtils.join([null], *)             = ""
3789
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
3790
     * StringUtils.join(["a", "b", "c"], null) = "abc"
3791
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
3792
     * </pre>
3793
     *
3794
     * @param array  the array of values to join together, may be null
3795
     * @param separator  the separator character to use
3796
     * @return the joined String, {@code null} if null array input
3797
     * @since 2.0
3798
     */
3799
    public static String join(final Object[] array, final char separator) {
3800 1 1. join : negated conditional → KILLED
        if (array == null) {
3801 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3802
        }
3803 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3804
    }
3805
3806
    /**
3807
     * <p>
3808
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3809
     * </p>
3810
     *
3811
     * <p>
3812
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3813
     * by empty strings.
3814
     * </p>
3815
     *
3816
     * <pre>
3817
     * StringUtils.join(null, *)               = null
3818
     * StringUtils.join([], *)                 = ""
3819
     * StringUtils.join([null], *)             = ""
3820
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3821
     * StringUtils.join([1, 2, 3], null) = "123"
3822
     * </pre>
3823
     *
3824
     * @param array
3825
     *            the array of values to join together, may be null
3826
     * @param separator
3827
     *            the separator character to use
3828
     * @return the joined String, {@code null} if null array input
3829
     * @since 3.2
3830
     */
3831
    public static String join(final long[] array, final char separator) {
3832 1 1. join : negated conditional → KILLED
        if (array == null) {
3833 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3834
        }
3835 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3836
    }
3837
3838
    /**
3839
     * <p>
3840
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3841
     * </p>
3842
     *
3843
     * <p>
3844
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3845
     * by empty strings.
3846
     * </p>
3847
     *
3848
     * <pre>
3849
     * StringUtils.join(null, *)               = null
3850
     * StringUtils.join([], *)                 = ""
3851
     * StringUtils.join([null], *)             = ""
3852
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3853
     * StringUtils.join([1, 2, 3], null) = "123"
3854
     * </pre>
3855
     *
3856
     * @param array
3857
     *            the array of values to join together, may be null
3858
     * @param separator
3859
     *            the separator character to use
3860
     * @return the joined String, {@code null} if null array input
3861
     * @since 3.2
3862
     */
3863
    public static String join(final int[] array, final char separator) {
3864 1 1. join : negated conditional → KILLED
        if (array == null) {
3865 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3866
        }
3867 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3868
    }
3869
3870
    /**
3871
     * <p>
3872
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3873
     * </p>
3874
     *
3875
     * <p>
3876
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3877
     * by empty strings.
3878
     * </p>
3879
     *
3880
     * <pre>
3881
     * StringUtils.join(null, *)               = null
3882
     * StringUtils.join([], *)                 = ""
3883
     * StringUtils.join([null], *)             = ""
3884
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3885
     * StringUtils.join([1, 2, 3], null) = "123"
3886
     * </pre>
3887
     *
3888
     * @param array
3889
     *            the array of values to join together, may be null
3890
     * @param separator
3891
     *            the separator character to use
3892
     * @return the joined String, {@code null} if null array input
3893
     * @since 3.2
3894
     */
3895
    public static String join(final short[] array, final char separator) {
3896 1 1. join : negated conditional → KILLED
        if (array == null) {
3897 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3898
        }
3899 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3900
    }
3901
3902
    /**
3903
     * <p>
3904
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3905
     * </p>
3906
     *
3907
     * <p>
3908
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3909
     * by empty strings.
3910
     * </p>
3911
     *
3912
     * <pre>
3913
     * StringUtils.join(null, *)               = null
3914
     * StringUtils.join([], *)                 = ""
3915
     * StringUtils.join([null], *)             = ""
3916
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3917
     * StringUtils.join([1, 2, 3], null) = "123"
3918
     * </pre>
3919
     *
3920
     * @param array
3921
     *            the array of values to join together, may be null
3922
     * @param separator
3923
     *            the separator character to use
3924
     * @return the joined String, {@code null} if null array input
3925
     * @since 3.2
3926
     */
3927
    public static String join(final byte[] array, final char separator) {
3928 1 1. join : negated conditional → KILLED
        if (array == null) {
3929 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3930
        }
3931 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3932
    }
3933
3934
    /**
3935
     * <p>
3936
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3937
     * </p>
3938
     *
3939
     * <p>
3940
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3941
     * by empty strings.
3942
     * </p>
3943
     *
3944
     * <pre>
3945
     * StringUtils.join(null, *)               = null
3946
     * StringUtils.join([], *)                 = ""
3947
     * StringUtils.join([null], *)             = ""
3948
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3949
     * StringUtils.join([1, 2, 3], null) = "123"
3950
     * </pre>
3951
     *
3952
     * @param array
3953
     *            the array of values to join together, may be null
3954
     * @param separator
3955
     *            the separator character to use
3956
     * @return the joined String, {@code null} if null array input
3957
     * @since 3.2
3958
     */
3959
    public static String join(final char[] array, final char separator) {
3960 1 1. join : negated conditional → KILLED
        if (array == null) {
3961 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3962
        }
3963 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3964
    }
3965
3966
    /**
3967
     * <p>
3968
     * Joins the elements of the provided array into a single String containing the provided list of elements.
3969
     * </p>
3970
     *
3971
     * <p>
3972
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
3973
     * by empty strings.
3974
     * </p>
3975
     *
3976
     * <pre>
3977
     * StringUtils.join(null, *)               = null
3978
     * StringUtils.join([], *)                 = ""
3979
     * StringUtils.join([null], *)             = ""
3980
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
3981
     * StringUtils.join([1, 2, 3], null) = "123"
3982
     * </pre>
3983
     *
3984
     * @param array
3985
     *            the array of values to join together, may be null
3986
     * @param separator
3987
     *            the separator character to use
3988
     * @return the joined String, {@code null} if null array input
3989
     * @since 3.2
3990
     */
3991
    public static String join(final float[] array, final char separator) {
3992 1 1. join : negated conditional → KILLED
        if (array == null) {
3993 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
3994
        }
3995 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
3996
    }
3997
3998
    /**
3999
     * <p>
4000
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4001
     * </p>
4002
     *
4003
     * <p>
4004
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4005
     * by empty strings.
4006
     * </p>
4007
     *
4008
     * <pre>
4009
     * StringUtils.join(null, *)               = null
4010
     * StringUtils.join([], *)                 = ""
4011
     * StringUtils.join([null], *)             = ""
4012
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4013
     * StringUtils.join([1, 2, 3], null) = "123"
4014
     * </pre>
4015
     *
4016
     * @param array
4017
     *            the array of values to join together, may be null
4018
     * @param separator
4019
     *            the separator character to use
4020
     * @return the joined String, {@code null} if null array input
4021
     * @since 3.2
4022
     */
4023
    public static String join(final double[] array, final char separator) {
4024 1 1. join : negated conditional → KILLED
        if (array == null) {
4025 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4026
        }
4027 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
4028
    }
4029
4030
4031
    /**
4032
     * <p>Joins the elements of the provided array into a single String
4033
     * containing the provided list of elements.</p>
4034
     *
4035
     * <p>No delimiter is added before or after the list.
4036
     * Null objects or empty strings within the array are represented by
4037
     * empty strings.</p>
4038
     *
4039
     * <pre>
4040
     * StringUtils.join(null, *)               = null
4041
     * StringUtils.join([], *)                 = ""
4042
     * StringUtils.join([null], *)             = ""
4043
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
4044
     * StringUtils.join(["a", "b", "c"], null) = "abc"
4045
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
4046
     * </pre>
4047
     *
4048
     * @param array  the array of values to join together, may be null
4049
     * @param separator  the separator character to use
4050
     * @param startIndex the first index to start joining from.  It is
4051
     * an error to pass in an end index past the end of the array
4052
     * @param endIndex the index to stop joining from (exclusive). It is
4053
     * an error to pass in an end index past the end of the array
4054
     * @return the joined String, {@code null} if null array input
4055
     * @since 2.0
4056
     */
4057
    public static String join(final Object[] array, final char separator, final int startIndex, final int endIndex) {
4058 1 1. join : negated conditional → KILLED
        if (array == null) {
4059 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4060
        }
4061 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4062 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4063 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4064
        }
4065 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4066 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4067 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4068
                buf.append(separator);
4069
            }
4070 1 1. join : negated conditional → KILLED
            if (array[i] != null) {
4071
                buf.append(array[i]);
4072
            }
4073
        }
4074 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4075
    }
4076
4077
    /**
4078
     * <p>
4079
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4080
     * </p>
4081
     *
4082
     * <p>
4083
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4084
     * by empty strings.
4085
     * </p>
4086
     *
4087
     * <pre>
4088
     * StringUtils.join(null, *)               = null
4089
     * StringUtils.join([], *)                 = ""
4090
     * StringUtils.join([null], *)             = ""
4091
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4092
     * StringUtils.join([1, 2, 3], null) = "123"
4093
     * </pre>
4094
     *
4095
     * @param array
4096
     *            the array of values to join together, may be null
4097
     * @param separator
4098
     *            the separator character to use
4099
     * @param startIndex
4100
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4101
     *            array
4102
     * @param endIndex
4103
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4104
     *            the array
4105
     * @return the joined String, {@code null} if null array input
4106
     * @since 3.2
4107
     */
4108
    public static String join(final long[] array, final char separator, final int startIndex, final int endIndex) {
4109 1 1. join : negated conditional → KILLED
        if (array == null) {
4110 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4111
        }
4112 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4113 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4114 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4115
        }
4116 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4117 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4118 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4119
                buf.append(separator);
4120
            }
4121
            buf.append(array[i]);
4122
        }
4123 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4124
    }
4125
4126
    /**
4127
     * <p>
4128
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4129
     * </p>
4130
     *
4131
     * <p>
4132
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4133
     * by empty strings.
4134
     * </p>
4135
     *
4136
     * <pre>
4137
     * StringUtils.join(null, *)               = null
4138
     * StringUtils.join([], *)                 = ""
4139
     * StringUtils.join([null], *)             = ""
4140
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4141
     * StringUtils.join([1, 2, 3], null) = "123"
4142
     * </pre>
4143
     *
4144
     * @param array
4145
     *            the array of values to join together, may be null
4146
     * @param separator
4147
     *            the separator character to use
4148
     * @param startIndex
4149
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4150
     *            array
4151
     * @param endIndex
4152
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4153
     *            the array
4154
     * @return the joined String, {@code null} if null array input
4155
     * @since 3.2
4156
     */
4157
    public static String join(final int[] array, final char separator, final int startIndex, final int endIndex) {
4158 1 1. join : negated conditional → KILLED
        if (array == null) {
4159 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4160
        }
4161 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4162 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4163 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4164
        }
4165 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4166 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4167 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4168
                buf.append(separator);
4169
            }
4170
            buf.append(array[i]);
4171
        }
4172 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4173
    }
4174
4175
    /**
4176
     * <p>
4177
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4178
     * </p>
4179
     *
4180
     * <p>
4181
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4182
     * by empty strings.
4183
     * </p>
4184
     *
4185
     * <pre>
4186
     * StringUtils.join(null, *)               = null
4187
     * StringUtils.join([], *)                 = ""
4188
     * StringUtils.join([null], *)             = ""
4189
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4190
     * StringUtils.join([1, 2, 3], null) = "123"
4191
     * </pre>
4192
     *
4193
     * @param array
4194
     *            the array of values to join together, may be null
4195
     * @param separator
4196
     *            the separator character to use
4197
     * @param startIndex
4198
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4199
     *            array
4200
     * @param endIndex
4201
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4202
     *            the array
4203
     * @return the joined String, {@code null} if null array input
4204
     * @since 3.2
4205
     */
4206
    public static String join(final byte[] array, final char separator, final int startIndex, final int endIndex) {
4207 1 1. join : negated conditional → KILLED
        if (array == null) {
4208 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4209
        }
4210 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4211 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4212 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4213
        }
4214 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4215 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4216 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4217
                buf.append(separator);
4218
            }
4219
            buf.append(array[i]);
4220
        }
4221 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4222
    }
4223
4224
    /**
4225
     * <p>
4226
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4227
     * </p>
4228
     *
4229
     * <p>
4230
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4231
     * by empty strings.
4232
     * </p>
4233
     *
4234
     * <pre>
4235
     * StringUtils.join(null, *)               = null
4236
     * StringUtils.join([], *)                 = ""
4237
     * StringUtils.join([null], *)             = ""
4238
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4239
     * StringUtils.join([1, 2, 3], null) = "123"
4240
     * </pre>
4241
     *
4242
     * @param array
4243
     *            the array of values to join together, may be null
4244
     * @param separator
4245
     *            the separator character to use
4246
     * @param startIndex
4247
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4248
     *            array
4249
     * @param endIndex
4250
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4251
     *            the array
4252
     * @return the joined String, {@code null} if null array input
4253
     * @since 3.2
4254
     */
4255
    public static String join(final short[] array, final char separator, final int startIndex, final int endIndex) {
4256 1 1. join : negated conditional → KILLED
        if (array == null) {
4257 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4258
        }
4259 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4260 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4261 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4262
        }
4263 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4264 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4265 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4266
                buf.append(separator);
4267
            }
4268
            buf.append(array[i]);
4269
        }
4270 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4271
    }
4272
4273
    /**
4274
     * <p>
4275
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4276
     * </p>
4277
     *
4278
     * <p>
4279
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4280
     * by empty strings.
4281
     * </p>
4282
     *
4283
     * <pre>
4284
     * StringUtils.join(null, *)               = null
4285
     * StringUtils.join([], *)                 = ""
4286
     * StringUtils.join([null], *)             = ""
4287
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4288
     * StringUtils.join([1, 2, 3], null) = "123"
4289
     * </pre>
4290
     *
4291
     * @param array
4292
     *            the array of values to join together, may be null
4293
     * @param separator
4294
     *            the separator character to use
4295
     * @param startIndex
4296
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4297
     *            array
4298
     * @param endIndex
4299
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4300
     *            the array
4301
     * @return the joined String, {@code null} if null array input
4302
     * @since 3.2
4303
     */
4304
    public static String join(final char[] array, final char separator, final int startIndex, final int endIndex) {
4305 1 1. join : negated conditional → KILLED
        if (array == null) {
4306 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4307
        }
4308 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4309 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4310 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4311
        }
4312 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4313 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4314 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4315
                buf.append(separator);
4316
            }
4317
            buf.append(array[i]);
4318
        }
4319 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4320
    }
4321
4322
    /**
4323
     * <p>
4324
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4325
     * </p>
4326
     *
4327
     * <p>
4328
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4329
     * by empty strings.
4330
     * </p>
4331
     *
4332
     * <pre>
4333
     * StringUtils.join(null, *)               = null
4334
     * StringUtils.join([], *)                 = ""
4335
     * StringUtils.join([null], *)             = ""
4336
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4337
     * StringUtils.join([1, 2, 3], null) = "123"
4338
     * </pre>
4339
     *
4340
     * @param array
4341
     *            the array of values to join together, may be null
4342
     * @param separator
4343
     *            the separator character to use
4344
     * @param startIndex
4345
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4346
     *            array
4347
     * @param endIndex
4348
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4349
     *            the array
4350
     * @return the joined String, {@code null} if null array input
4351
     * @since 3.2
4352
     */
4353
    public static String join(final double[] array, final char separator, final int startIndex, final int endIndex) {
4354 1 1. join : negated conditional → KILLED
        if (array == null) {
4355 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4356
        }
4357 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4358 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4359 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4360
        }
4361 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4362 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4363 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4364
                buf.append(separator);
4365
            }
4366
            buf.append(array[i]);
4367
        }
4368 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4369
    }
4370
4371
    /**
4372
     * <p>
4373
     * Joins the elements of the provided array into a single String containing the provided list of elements.
4374
     * </p>
4375
     *
4376
     * <p>
4377
     * No delimiter is added before or after the list. Null objects or empty strings within the array are represented
4378
     * by empty strings.
4379
     * </p>
4380
     *
4381
     * <pre>
4382
     * StringUtils.join(null, *)               = null
4383
     * StringUtils.join([], *)                 = ""
4384
     * StringUtils.join([null], *)             = ""
4385
     * StringUtils.join([1, 2, 3], ';')  = "1;2;3"
4386
     * StringUtils.join([1, 2, 3], null) = "123"
4387
     * </pre>
4388
     *
4389
     * @param array
4390
     *            the array of values to join together, may be null
4391
     * @param separator
4392
     *            the separator character to use
4393
     * @param startIndex
4394
     *            the first index to start joining from. It is an error to pass in an end index past the end of the
4395
     *            array
4396
     * @param endIndex
4397
     *            the index to stop joining from (exclusive). It is an error to pass in an end index past the end of
4398
     *            the array
4399
     * @return the joined String, {@code null} if null array input
4400
     * @since 3.2
4401
     */
4402
    public static String join(final float[] array, final char separator, final int startIndex, final int endIndex) {
4403 1 1. join : negated conditional → KILLED
        if (array == null) {
4404 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4405
        }
4406 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4407 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4408 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4409
        }
4410 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4411 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4412 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4413
                buf.append(separator);
4414
            }
4415
            buf.append(array[i]);
4416
        }
4417 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4418
    }
4419
4420
4421
    /**
4422
     * <p>Joins the elements of the provided array into a single String
4423
     * containing the provided list of elements.</p>
4424
     *
4425
     * <p>No delimiter is added before or after the list.
4426
     * A {@code null} separator is the same as an empty String ("").
4427
     * Null objects or empty strings within the array are represented by
4428
     * empty strings.</p>
4429
     *
4430
     * <pre>
4431
     * StringUtils.join(null, *)                = null
4432
     * StringUtils.join([], *)                  = ""
4433
     * StringUtils.join([null], *)              = ""
4434
     * StringUtils.join(["a", "b", "c"], "--")  = "a--b--c"
4435
     * StringUtils.join(["a", "b", "c"], null)  = "abc"
4436
     * StringUtils.join(["a", "b", "c"], "")    = "abc"
4437
     * StringUtils.join([null, "", "a"], ',')   = ",,a"
4438
     * </pre>
4439
     *
4440
     * @param array  the array of values to join together, may be null
4441
     * @param separator  the separator character to use, null treated as ""
4442
     * @return the joined String, {@code null} if null array input
4443
     */
4444
    public static String join(final Object[] array, final String separator) {
4445 1 1. join : negated conditional → KILLED
        if (array == null) {
4446 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4447
        }
4448 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(array, separator, 0, array.length);
4449
    }
4450
4451
    /**
4452
     * <p>Joins the elements of the provided array into a single String
4453
     * containing the provided list of elements.</p>
4454
     *
4455
     * <p>No delimiter is added before or after the list.
4456
     * A {@code null} separator is the same as an empty String ("").
4457
     * Null objects or empty strings within the array are represented by
4458
     * empty strings.</p>
4459
     *
4460
     * <pre>
4461
     * StringUtils.join(null, *, *, *)                = null
4462
     * StringUtils.join([], *, *, *)                  = ""
4463
     * StringUtils.join([null], *, *, *)              = ""
4464
     * StringUtils.join(["a", "b", "c"], "--", 0, 3)  = "a--b--c"
4465
     * StringUtils.join(["a", "b", "c"], "--", 1, 3)  = "b--c"
4466
     * StringUtils.join(["a", "b", "c"], "--", 2, 3)  = "c"
4467
     * StringUtils.join(["a", "b", "c"], "--", 2, 2)  = ""
4468
     * StringUtils.join(["a", "b", "c"], null, 0, 3)  = "abc"
4469
     * StringUtils.join(["a", "b", "c"], "", 0, 3)    = "abc"
4470
     * StringUtils.join([null, "", "a"], ',', 0, 3)   = ",,a"
4471
     * </pre>
4472
     *
4473
     * @param array  the array of values to join together, may be null
4474
     * @param separator  the separator character to use, null treated as ""
4475
     * @param startIndex the first index to start joining from.
4476
     * @param endIndex the index to stop joining from (exclusive).
4477
     * @return the joined String, {@code null} if null array input; or the empty string
4478
     * if {@code endIndex - startIndex <= 0}. The number of joined entries is given by
4479
     * {@code endIndex - startIndex}
4480
     * @throws ArrayIndexOutOfBoundsException ife<br>
4481
     * {@code startIndex < 0} or <br>
4482
     * {@code startIndex >= array.length()} or <br>
4483
     * {@code endIndex < 0} or <br>
4484
     * {@code endIndex > array.length()}
4485
     */
4486
    public static String join(final Object[] array, String separator, final int startIndex, final int endIndex) {
4487 1 1. join : negated conditional → KILLED
        if (array == null) {
4488 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
            return null;
4489
        }
4490 1 1. join : negated conditional → KILLED
        if (separator == null) {
4491
            separator = EMPTY;
4492
        }
4493
4494
        // endIndex - startIndex > 0:   Len = NofStrings *(len(firstString) + len(separator))
4495
        //           (Assuming that all Strings are roughly equally long)
4496 1 1. join : Replaced integer subtraction with addition → SURVIVED
        final int noOfItems = endIndex - startIndex;
4497 2 1. join : changed conditional boundary → SURVIVED
2. join : negated conditional → KILLED
        if (noOfItems <= 0) {
4498 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4499
        }
4500
4501 1 1. join : Replaced integer multiplication with division → SURVIVED
        final StringBuilder buf = new StringBuilder(noOfItems * 16);
4502
4503 3 1. join : changed conditional boundary → KILLED
2. join : Changed increment from 1 to -1 → KILLED
3. join : negated conditional → KILLED
        for (int i = startIndex; i < endIndex; i++) {
4504 2 1. join : changed conditional boundary → KILLED
2. join : negated conditional → KILLED
            if (i > startIndex) {
4505
                buf.append(separator);
4506
            }
4507 1 1. join : negated conditional → KILLED
            if (array[i] != null) {
4508
                buf.append(array[i]);
4509
            }
4510
        }
4511 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4512
    }
4513
4514
    /**
4515
     * <p>Joins the elements of the provided {@code Iterator} into
4516
     * a single String containing the provided elements.</p>
4517
     *
4518
     * <p>No delimiter is added before or after the list. Null objects or empty
4519
     * strings within the iteration are represented by empty strings.</p>
4520
     *
4521
     * <p>See the examples here: {@link #join(Object[],char)}. </p>
4522
     *
4523
     * @param iterator  the {@code Iterator} of values to join together, may be null
4524
     * @param separator  the separator character to use
4525
     * @return the joined String, {@code null} if null iterator input
4526
     * @since 2.0
4527
     */
4528
    public static String join(final Iterator<?> iterator, final char separator) {
4529
4530
        // handle null, zero and one elements before building a buffer
4531 1 1. join : negated conditional → KILLED
        if (iterator == null) {
4532 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4533
        }
4534 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4535 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4536
        }
4537
        final Object first = iterator.next();
4538 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4539
            final String result = Objects.toString(first, "");
4540 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
4541
        }
4542
4543
        // two or more elements
4544
        final StringBuilder buf = new StringBuilder(256); // Java default is 16, probably too small
4545 1 1. join : negated conditional → KILLED
        if (first != null) {
4546
            buf.append(first);
4547
        }
4548
4549 1 1. join : negated conditional → KILLED
        while (iterator.hasNext()) {
4550
            buf.append(separator);
4551
            final Object obj = iterator.next();
4552 1 1. join : negated conditional → KILLED
            if (obj != null) {
4553
                buf.append(obj);
4554
            }
4555
        }
4556
4557 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4558
    }
4559
4560
    /**
4561
     * <p>Joins the elements of the provided {@code Iterator} into
4562
     * a single String containing the provided elements.</p>
4563
     *
4564
     * <p>No delimiter is added before or after the list.
4565
     * A {@code null} separator is the same as an empty String ("").</p>
4566
     *
4567
     * <p>See the examples here: {@link #join(Object[],String)}. </p>
4568
     *
4569
     * @param iterator  the {@code Iterator} of values to join together, may be null
4570
     * @param separator  the separator character to use, null treated as ""
4571
     * @return the joined String, {@code null} if null iterator input
4572
     */
4573
    public static String join(final Iterator<?> iterator, final String separator) {
4574
4575
        // handle null, zero and one elements before building a buffer
4576 1 1. join : negated conditional → KILLED
        if (iterator == null) {
4577 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4578
        }
4579 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4580 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
4581
        }
4582
        final Object first = iterator.next();
4583 1 1. join : negated conditional → KILLED
        if (!iterator.hasNext()) {
4584
            final String result = Objects.toString(first, "");
4585 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
4586
        }
4587
4588
        // two or more elements
4589
        final StringBuilder buf = new StringBuilder(256); // Java default is 16, probably too small
4590 1 1. join : negated conditional → KILLED
        if (first != null) {
4591
            buf.append(first);
4592
        }
4593
4594 1 1. join : negated conditional → KILLED
        while (iterator.hasNext()) {
4595 1 1. join : negated conditional → KILLED
            if (separator != null) {
4596
                buf.append(separator);
4597
            }
4598
            final Object obj = iterator.next();
4599 1 1. join : negated conditional → KILLED
            if (obj != null) {
4600
                buf.append(obj);
4601
            }
4602
        }
4603 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return buf.toString();
4604
    }
4605
4606
    /**
4607
     * <p>Joins the elements of the provided {@code Iterable} into
4608
     * a single String containing the provided elements.</p>
4609
     *
4610
     * <p>No delimiter is added before or after the list. Null objects or empty
4611
     * strings within the iteration are represented by empty strings.</p>
4612
     *
4613
     * <p>See the examples here: {@link #join(Object[],char)}. </p>
4614
     *
4615
     * @param iterable  the {@code Iterable} providing the values to join together, may be null
4616
     * @param separator  the separator character to use
4617
     * @return the joined String, {@code null} if null iterator input
4618
     * @since 2.3
4619
     */
4620
    public static String join(final Iterable<?> iterable, final char separator) {
4621 1 1. join : negated conditional → KILLED
        if (iterable == null) {
4622 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4623
        }
4624 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(iterable.iterator(), separator);
4625
    }
4626
4627
    /**
4628
     * <p>Joins the elements of the provided {@code Iterable} into
4629
     * a single String containing the provided elements.</p>
4630
     *
4631
     * <p>No delimiter is added before or after the list.
4632
     * A {@code null} separator is the same as an empty String ("").</p>
4633
     *
4634
     * <p>See the examples here: {@link #join(Object[],String)}. </p>
4635
     *
4636
     * @param iterable  the {@code Iterable} providing the values to join together, may be null
4637
     * @param separator  the separator character to use, null treated as ""
4638
     * @return the joined String, {@code null} if null iterator input
4639
     * @since 2.3
4640
     */
4641
    public static String join(final Iterable<?> iterable, final String separator) {
4642 1 1. join : negated conditional → KILLED
        if (iterable == null) {
4643 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
4644
        }
4645 1 1. join : mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(iterable.iterator(), separator);
4646
    }
4647
4648
    /**
4649
     * <p>Joins the elements of the provided varargs into a
4650
     * single String containing the provided elements.</p>
4651
     *
4652
     * <p>No delimiter is added before or after the list.
4653
     * {@code null} elements and separator are treated as empty Strings ("").</p>
4654
     *
4655
     * <pre>
4656
     * StringUtils.joinWith(",", {"a", "b"})        = "a,b"
4657
     * StringUtils.joinWith(",", {"a", "b",""})     = "a,b,"
4658
     * StringUtils.joinWith(",", {"a", null, "b"})  = "a,,b"
4659
     * StringUtils.joinWith(null, {"a", "b"})       = "ab"
4660
     * </pre>
4661
     *
4662
     * @param separator the separator character to use, null treated as ""
4663
     * @param objects the varargs providing the values to join together. {@code null} elements are treated as ""
4664
     * @return the joined String.
4665
     * @throws java.lang.IllegalArgumentException if a null varargs is provided
4666
     * @since 3.5
4667
     */
4668
    public static String joinWith(final String separator, final Object... objects) {
4669 1 1. joinWith : negated conditional → KILLED
        if (objects == null) {
4670
            throw new IllegalArgumentException("Object varargs must not be null");
4671
        }
4672
4673
        final String sanitizedSeparator = defaultString(separator, StringUtils.EMPTY);
4674
4675
        final StringBuilder result = new StringBuilder();
4676
4677
        final Iterator<Object> iterator = Arrays.asList(objects).iterator();
4678 1 1. joinWith : negated conditional → KILLED
        while (iterator.hasNext()) {
4679
            final String value = Objects.toString(iterator.next(), "");
4680
            result.append(value);
4681
4682 1 1. joinWith : negated conditional → KILLED
            if (iterator.hasNext()) {
4683
                result.append(sanitizedSeparator);
4684
            }
4685
        }
4686
4687 1 1. joinWith : mutated return of Object value for org/apache/commons/lang3/StringUtils::joinWith to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return result.toString();
4688
    }
4689
4690
    // Delete
4691
    //-----------------------------------------------------------------------
4692
    /**
4693
     * <p>Deletes all whitespaces from a String as defined by
4694
     * {@link Character#isWhitespace(char)}.</p>
4695
     *
4696
     * <pre>
4697
     * StringUtils.deleteWhitespace(null)         = null
4698
     * StringUtils.deleteWhitespace("")           = ""
4699
     * StringUtils.deleteWhitespace("abc")        = "abc"
4700
     * StringUtils.deleteWhitespace("   ab  c  ") = "abc"
4701
     * </pre>
4702
     *
4703
     * @param str  the String to delete whitespace from, may be null
4704
     * @return the String without whitespaces, {@code null} if null String input
4705
     */
4706
    public static String deleteWhitespace(final String str) {
4707 1 1. deleteWhitespace : negated conditional → KILLED
        if (isEmpty(str)) {
4708 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4709
        }
4710
        final int sz = str.length();
4711
        final char[] chs = new char[sz];
4712
        int count = 0;
4713 3 1. deleteWhitespace : changed conditional boundary → KILLED
2. deleteWhitespace : Changed increment from 1 to -1 → KILLED
3. deleteWhitespace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
4714 1 1. deleteWhitespace : negated conditional → KILLED
            if (!Character.isWhitespace(str.charAt(i))) {
4715 1 1. deleteWhitespace : Changed increment from 1 to -1 → KILLED
                chs[count++] = str.charAt(i);
4716
            }
4717
        }
4718 1 1. deleteWhitespace : negated conditional → KILLED
        if (count == sz) {
4719 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4720
        }
4721 1 1. deleteWhitespace : mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(chs, 0, count);
4722
    }
4723
4724
    // Remove
4725
    //-----------------------------------------------------------------------
4726
    /**
4727
     * <p>Removes a substring only if it is at the beginning of a source string,
4728
     * otherwise returns the source string.</p>
4729
     *
4730
     * <p>A {@code null} source string will return {@code null}.
4731
     * An empty ("") source string will return the empty string.
4732
     * A {@code null} search string will return the source string.</p>
4733
     *
4734
     * <pre>
4735
     * StringUtils.removeStart(null, *)      = null
4736
     * StringUtils.removeStart("", *)        = ""
4737
     * StringUtils.removeStart(*, null)      = *
4738
     * StringUtils.removeStart("www.domain.com", "www.")   = "domain.com"
4739
     * StringUtils.removeStart("domain.com", "www.")       = "domain.com"
4740
     * StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com"
4741
     * StringUtils.removeStart("abc", "")    = "abc"
4742
     * </pre>
4743
     *
4744
     * @param str  the source String to search, may be null
4745
     * @param remove  the String to search for and remove, may be null
4746
     * @return the substring with the string removed if found,
4747
     *  {@code null} if null String input
4748
     * @since 2.1
4749
     */
4750
    public static String removeStart(final String str, final String remove) {
4751 2 1. removeStart : negated conditional → KILLED
2. removeStart : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4752 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4753
        }
4754 1 1. removeStart : negated conditional → KILLED
        if (str.startsWith(remove)){
4755 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(remove.length());
4756
        }
4757 1 1. removeStart : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4758
    }
4759
4760
    /**
4761
     * <p>Case insensitive removal of a substring if it is at the beginning of a source string,
4762
     * otherwise returns the source string.</p>
4763
     *
4764
     * <p>A {@code null} source string will return {@code null}.
4765
     * An empty ("") source string will return the empty string.
4766
     * A {@code null} search string will return the source string.</p>
4767
     *
4768
     * <pre>
4769
     * StringUtils.removeStartIgnoreCase(null, *)      = null
4770
     * StringUtils.removeStartIgnoreCase("", *)        = ""
4771
     * StringUtils.removeStartIgnoreCase(*, null)      = *
4772
     * StringUtils.removeStartIgnoreCase("www.domain.com", "www.")   = "domain.com"
4773
     * StringUtils.removeStartIgnoreCase("www.domain.com", "WWW.")   = "domain.com"
4774
     * StringUtils.removeStartIgnoreCase("domain.com", "www.")       = "domain.com"
4775
     * StringUtils.removeStartIgnoreCase("www.domain.com", "domain") = "www.domain.com"
4776
     * StringUtils.removeStartIgnoreCase("abc", "")    = "abc"
4777
     * </pre>
4778
     *
4779
     * @param str  the source String to search, may be null
4780
     * @param remove  the String to search for (case insensitive) and remove, may be null
4781
     * @return the substring with the string removed if found,
4782
     *  {@code null} if null String input
4783
     * @since 2.4
4784
     */
4785
    public static String removeStartIgnoreCase(final String str, final String remove) {
4786 2 1. removeStartIgnoreCase : negated conditional → KILLED
2. removeStartIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4787 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4788
        }
4789 1 1. removeStartIgnoreCase : negated conditional → KILLED
        if (startsWithIgnoreCase(str, remove)) {
4790 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(remove.length());
4791
        }
4792 1 1. removeStartIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4793
    }
4794
4795
    /**
4796
     * <p>Removes a substring only if it is at the end of a source string,
4797
     * otherwise returns the source string.</p>
4798
     *
4799
     * <p>A {@code null} source string will return {@code null}.
4800
     * An empty ("") source string will return the empty string.
4801
     * A {@code null} search string will return the source string.</p>
4802
     *
4803
     * <pre>
4804
     * StringUtils.removeEnd(null, *)      = null
4805
     * StringUtils.removeEnd("", *)        = ""
4806
     * StringUtils.removeEnd(*, null)      = *
4807
     * StringUtils.removeEnd("www.domain.com", ".com.")  = "www.domain.com"
4808
     * StringUtils.removeEnd("www.domain.com", ".com")   = "www.domain"
4809
     * StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com"
4810
     * StringUtils.removeEnd("abc", "")    = "abc"
4811
     * </pre>
4812
     *
4813
     * @param str  the source String to search, may be null
4814
     * @param remove  the String to search for and remove, may be null
4815
     * @return the substring with the string removed if found,
4816
     *  {@code null} if null String input
4817
     * @since 2.1
4818
     */
4819
    public static String removeEnd(final String str, final String remove) {
4820 2 1. removeEnd : negated conditional → KILLED
2. removeEnd : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4821 1 1. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4822
        }
4823 1 1. removeEnd : negated conditional → KILLED
        if (str.endsWith(remove)) {
4824 2 1. removeEnd : Replaced integer subtraction with addition → KILLED
2. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, str.length() - remove.length());
4825
        }
4826 1 1. removeEnd : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4827
    }
4828
4829
    /**
4830
     * <p>Case insensitive removal of a substring if it is at the end of a source string,
4831
     * otherwise returns the source string.</p>
4832
     *
4833
     * <p>A {@code null} source string will return {@code null}.
4834
     * An empty ("") source string will return the empty string.
4835
     * A {@code null} search string will return the source string.</p>
4836
     *
4837
     * <pre>
4838
     * StringUtils.removeEndIgnoreCase(null, *)      = null
4839
     * StringUtils.removeEndIgnoreCase("", *)        = ""
4840
     * StringUtils.removeEndIgnoreCase(*, null)      = *
4841
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com.")  = "www.domain.com"
4842
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".com")   = "www.domain"
4843
     * StringUtils.removeEndIgnoreCase("www.domain.com", "domain") = "www.domain.com"
4844
     * StringUtils.removeEndIgnoreCase("abc", "")    = "abc"
4845
     * StringUtils.removeEndIgnoreCase("www.domain.com", ".COM") = "www.domain")
4846
     * StringUtils.removeEndIgnoreCase("www.domain.COM", ".com") = "www.domain")
4847
     * </pre>
4848
     *
4849
     * @param str  the source String to search, may be null
4850
     * @param remove  the String to search for (case insensitive) and remove, may be null
4851
     * @return the substring with the string removed if found,
4852
     *  {@code null} if null String input
4853
     * @since 2.4
4854
     */
4855
    public static String removeEndIgnoreCase(final String str, final String remove) {
4856 2 1. removeEndIgnoreCase : negated conditional → KILLED
2. removeEndIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4857 1 1. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4858
        }
4859 1 1. removeEndIgnoreCase : negated conditional → KILLED
        if (endsWithIgnoreCase(str, remove)) {
4860 2 1. removeEndIgnoreCase : Replaced integer subtraction with addition → KILLED
2. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, str.length() - remove.length());
4861
        }
4862 1 1. removeEndIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
4863
    }
4864
4865
    /**
4866
     * <p>Removes all occurrences of a substring from within the source string.</p>
4867
     *
4868
     * <p>A {@code null} source string will return {@code null}.
4869
     * An empty ("") source string will return the empty string.
4870
     * A {@code null} remove string will return the source string.
4871
     * An empty ("") remove string will return the source string.</p>
4872
     *
4873
     * <pre>
4874
     * StringUtils.remove(null, *)        = null
4875
     * StringUtils.remove("", *)          = ""
4876
     * StringUtils.remove(*, null)        = *
4877
     * StringUtils.remove(*, "")          = *
4878
     * StringUtils.remove("queued", "ue") = "qd"
4879
     * StringUtils.remove("queued", "zz") = "queued"
4880
     * </pre>
4881
     *
4882
     * @param str  the source String to search, may be null
4883
     * @param remove  the String to search for and remove, may be null
4884
     * @return the substring with the string removed if found,
4885
     *  {@code null} if null String input
4886
     * @since 2.1
4887
     */
4888
    public static String remove(final String str, final String remove) {
4889 2 1. remove : negated conditional → KILLED
2. remove : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4890 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4891
        }
4892 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(str, remove, EMPTY, -1);
4893
    }
4894
4895
    /**
4896
     * <p>
4897
     * Case insensitive removal of all occurrences of a substring from within
4898
     * the source string.
4899
     * </p>
4900
     *
4901
     * <p>
4902
     * A {@code null} source string will return {@code null}. An empty ("")
4903
     * source string will return the empty string. A {@code null} remove string
4904
     * will return the source string. An empty ("") remove string will return
4905
     * the source string.
4906
     * </p>
4907
     *
4908
     * <pre>
4909
     * StringUtils.removeIgnoreCase(null, *)        = null
4910
     * StringUtils.removeIgnoreCase("", *)          = ""
4911
     * StringUtils.removeIgnoreCase(*, null)        = *
4912
     * StringUtils.removeIgnoreCase(*, "")          = *
4913
     * StringUtils.removeIgnoreCase("queued", "ue") = "qd"
4914
     * StringUtils.removeIgnoreCase("queued", "zz") = "queued"
4915
     * StringUtils.removeIgnoreCase("quEUed", "UE") = "qd"
4916
     * StringUtils.removeIgnoreCase("queued", "zZ") = "queued"
4917
     * </pre>
4918
     *
4919
     * @param str
4920
     *            the source String to search, may be null
4921
     * @param remove
4922
     *            the String to search for (case insensitive) and remove, may be
4923
     *            null
4924
     * @return the substring with the string removed if found, {@code null} if
4925
     *         null String input
4926
     * @since 3.5
4927
     */
4928
    public static String removeIgnoreCase(final String str, final String remove) {
4929 2 1. removeIgnoreCase : negated conditional → KILLED
2. removeIgnoreCase : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(remove)) {
4930 1 1. removeIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4931
        }
4932 1 1. removeIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceIgnoreCase(str, remove, EMPTY, -1);
4933
    }
4934
4935
    /**
4936
     * <p>Removes all occurrences of a character from within the source string.</p>
4937
     *
4938
     * <p>A {@code null} source string will return {@code null}.
4939
     * An empty ("") source string will return the empty string.</p>
4940
     *
4941
     * <pre>
4942
     * StringUtils.remove(null, *)       = null
4943
     * StringUtils.remove("", *)         = ""
4944
     * StringUtils.remove("queued", 'u') = "qeed"
4945
     * StringUtils.remove("queued", 'z') = "queued"
4946
     * </pre>
4947
     *
4948
     * @param str  the source String to search, may be null
4949
     * @param remove  the char to search for and remove, may be null
4950
     * @return the substring with the char removed if found,
4951
     *  {@code null} if null String input
4952
     * @since 2.1
4953
     */
4954
    public static String remove(final String str, final char remove) {
4955 2 1. remove : negated conditional → KILLED
2. remove : negated conditional → KILLED
        if (isEmpty(str) || str.indexOf(remove) == INDEX_NOT_FOUND) {
4956 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
4957
        }
4958
        final char[] chars = str.toCharArray();
4959
        int pos = 0;
4960 3 1. remove : changed conditional boundary → KILLED
2. remove : Changed increment from 1 to -1 → KILLED
3. remove : negated conditional → KILLED
        for (int i = 0; i < chars.length; i++) {
4961 1 1. remove : negated conditional → KILLED
            if (chars[i] != remove) {
4962 1 1. remove : Changed increment from 1 to -1 → KILLED
                chars[pos++] = chars[i];
4963
            }
4964
        }
4965 1 1. remove : mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(chars, 0, pos);
4966
    }
4967
4968
    /**
4969
     * <p>Removes each substring of the text String that matches the given regular expression.</p>
4970
     *
4971
     * This method is a {@code null} safe equivalent to:
4972
     * <ul>
4973
     *  <li>{@code text.replaceAll(regex, StringUtils.EMPTY)}</li>
4974
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceAll(StringUtils.EMPTY)}</li>
4975
     * </ul>
4976
     *
4977
     * <p>A {@code null} reference passed to this method is a no-op.</p>
4978
     *
4979
     * <p>Unlike in the {@link #removePattern(String, String)} method, the {@link Pattern#DOTALL} option
4980
     * is NOT automatically added.
4981
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
4982
     * DOTALL is also know as single-line mode in Perl.</p>
4983
     *
4984
     * <pre>
4985
     * StringUtils.removeAll(null, *)      = null
4986
     * StringUtils.removeAll("any", null)  = "any"
4987
     * StringUtils.removeAll("any", "")    = "any"
4988
     * StringUtils.removeAll("any", ".*")  = ""
4989
     * StringUtils.removeAll("any", ".+")  = ""
4990
     * StringUtils.removeAll("abc", ".?")  = ""
4991
     * StringUtils.removeAll("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")      = "A\nB"
4992
     * StringUtils.removeAll("A&lt;__&gt;\n&lt;__&gt;B", "(?s)&lt;.*&gt;")  = "AB"
4993
     * StringUtils.removeAll("ABCabc123abc", "[a-z]")     = "ABC123"
4994
     * </pre>
4995
     *
4996
     * @param text  text to remove from, may be null
4997
     * @param regex  the regular expression to which this string is to be matched
4998
     * @return  the text with any removes processed,
4999
     *              {@code null} if null String input
5000
     *
5001
     * @throws  java.util.regex.PatternSyntaxException
5002
     *              if the regular expression's syntax is invalid
5003
     *
5004
     * @see #replaceAll(String, String, String)
5005
     * @see #removePattern(String, String)
5006
     * @see String#replaceAll(String, String)
5007
     * @see java.util.regex.Pattern
5008
     * @see java.util.regex.Pattern#DOTALL
5009
     * @since 3.5
5010
     */
5011
    public static String removeAll(final String text, final String regex) {
5012 1 1. removeAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceAll(text, regex, StringUtils.EMPTY);
5013
    }
5014
5015
    /**
5016
     * <p>Removes the first substring of the text string that matches the given regular expression.</p>
5017
     *
5018
     * This method is a {@code null} safe equivalent to:
5019
     * <ul>
5020
     *  <li>{@code text.replaceFirst(regex, StringUtils.EMPTY)}</li>
5021
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceFirst(StringUtils.EMPTY)}</li>
5022
     * </ul>
5023
     *
5024
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5025
     *
5026
     * <p>The {@link Pattern#DOTALL} option is NOT automatically added.
5027
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5028
     * DOTALL is also know as single-line mode in Perl.</p>
5029
     *
5030
     * <pre>
5031
     * StringUtils.removeFirst(null, *)      = null
5032
     * StringUtils.removeFirst("any", null)  = "any"
5033
     * StringUtils.removeFirst("any", "")    = "any"
5034
     * StringUtils.removeFirst("any", ".*")  = ""
5035
     * StringUtils.removeFirst("any", ".+")  = ""
5036
     * StringUtils.removeFirst("abc", ".?")  = "bc"
5037
     * StringUtils.removeFirst("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")      = "A\n&lt;__&gt;B"
5038
     * StringUtils.removeFirst("A&lt;__&gt;\n&lt;__&gt;B", "(?s)&lt;.*&gt;")  = "AB"
5039
     * StringUtils.removeFirst("ABCabc123", "[a-z]")          = "ABCbc123"
5040
     * StringUtils.removeFirst("ABCabc123abc", "[a-z]+")      = "ABC123abc"
5041
     * </pre>
5042
     *
5043
     * @param text  text to remove from, may be null
5044
     * @param regex  the regular expression to which this string is to be matched
5045
     * @return  the text with the first replacement processed,
5046
     *              {@code null} if null String input
5047
     *
5048
     * @throws  java.util.regex.PatternSyntaxException
5049
     *              if the regular expression's syntax is invalid
5050
     *
5051
     * @see #replaceFirst(String, String, String)
5052
     * @see String#replaceFirst(String, String)
5053
     * @see java.util.regex.Pattern
5054
     * @see java.util.regex.Pattern#DOTALL
5055
     * @since 3.5
5056
     */
5057
    public static String removeFirst(final String text, final String regex) {
5058 1 1. removeFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::removeFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceFirst(text, regex, StringUtils.EMPTY);
5059
    }
5060
5061
    // Replacing
5062
    //-----------------------------------------------------------------------
5063
    /**
5064
     * <p>Replaces a String with another String inside a larger String, once.</p>
5065
     *
5066
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5067
     *
5068
     * <pre>
5069
     * StringUtils.replaceOnce(null, *, *)        = null
5070
     * StringUtils.replaceOnce("", *, *)          = ""
5071
     * StringUtils.replaceOnce("any", null, *)    = "any"
5072
     * StringUtils.replaceOnce("any", *, null)    = "any"
5073
     * StringUtils.replaceOnce("any", "", *)      = "any"
5074
     * StringUtils.replaceOnce("aba", "a", null)  = "aba"
5075
     * StringUtils.replaceOnce("aba", "a", "")    = "ba"
5076
     * StringUtils.replaceOnce("aba", "a", "z")   = "zba"
5077
     * </pre>
5078
     *
5079
     * @see #replace(String text, String searchString, String replacement, int max)
5080
     * @param text  text to search and replace in, may be null
5081
     * @param searchString  the String to search for, may be null
5082
     * @param replacement  the String to replace with, may be null
5083
     * @return the text with any replacements processed,
5084
     *  {@code null} if null String input
5085
     */
5086
    public static String replaceOnce(final String text, final String searchString, final String replacement) {
5087 1 1. replaceOnce : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnce to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, 1);
5088
    }
5089
5090
    /**
5091
     * <p>Case insensitively replaces a String with another String inside a larger String, once.</p>
5092
     *
5093
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5094
     *
5095
     * <pre>
5096
     * StringUtils.replaceOnceIgnoreCase(null, *, *)        = null
5097
     * StringUtils.replaceOnceIgnoreCase("", *, *)          = ""
5098
     * StringUtils.replaceOnceIgnoreCase("any", null, *)    = "any"
5099
     * StringUtils.replaceOnceIgnoreCase("any", *, null)    = "any"
5100
     * StringUtils.replaceOnceIgnoreCase("any", "", *)      = "any"
5101
     * StringUtils.replaceOnceIgnoreCase("aba", "a", null)  = "aba"
5102
     * StringUtils.replaceOnceIgnoreCase("aba", "a", "")    = "ba"
5103
     * StringUtils.replaceOnceIgnoreCase("aba", "a", "z")   = "zba"
5104
     * StringUtils.replaceOnceIgnoreCase("FoOFoofoo", "foo", "") = "Foofoo"
5105
     * </pre>
5106
     *
5107
     * @see #replaceIgnoreCase(String text, String searchString, String replacement, int max)
5108
     * @param text  text to search and replace in, may be null
5109
     * @param searchString  the String to search for (case insensitive), may be null
5110
     * @param replacement  the String to replace with, may be null
5111
     * @return the text with any replacements processed,
5112
     *  {@code null} if null String input
5113
     * @since 3.5
5114
     */
5115
    public static String replaceOnceIgnoreCase(final String text, final String searchString, final String replacement) {
5116 1 1. replaceOnceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceIgnoreCase(text, searchString, replacement, 1);
5117
    }
5118
5119
    /**
5120
     * <p>Replaces each substring of the source String that matches the given regular expression with the given
5121
     * replacement using the {@link Pattern#DOTALL} option. DOTALL is also know as single-line mode in Perl.</p>
5122
     *
5123
     * This call is a {@code null} safe equivalent to:
5124
     * <ul>
5125
     * <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, replacement)}</li>
5126
     * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(replacement)}</li>
5127
     * </ul>
5128
     *
5129
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5130
     *
5131
     * <pre>
5132
     * StringUtils.replacePattern(null, *, *)       = null
5133
     * StringUtils.replacePattern("any", null, *)   = "any"
5134
     * StringUtils.replacePattern("any", *, null)   = "any"
5135
     * StringUtils.replacePattern("", "", "zzz")    = "zzz"
5136
     * StringUtils.replacePattern("", ".*", "zzz")  = "zzz"
5137
     * StringUtils.replacePattern("", ".+", "zzz")  = ""
5138
     * StringUtils.replacePattern("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")       = "z"
5139
     * StringUtils.replacePattern("ABCabc123", "[a-z]", "_")       = "ABC___123"
5140
     * StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "_")  = "ABC_123"
5141
     * StringUtils.replacePattern("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"
5142
     * StringUtils.replacePattern("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum_dolor_sit"
5143
     * </pre>
5144
     *
5145
     * @param source
5146
     *            the source string
5147
     * @param regex
5148
     *            the regular expression to which this string is to be matched
5149
     * @param replacement
5150
     *            the string to be substituted for each match
5151
     * @return The resulting {@code String}
5152
     * @see #replaceAll(String, String, String)
5153
     * @see String#replaceAll(String, String)
5154
     * @see Pattern#DOTALL
5155
     * @since 3.2
5156
     * @since 3.5 Changed {@code null} reference passed to this method is a no-op.
5157
     */
5158
    public static String replacePattern(final String source, final String regex, final String replacement) {
5159 3 1. replacePattern : negated conditional → KILLED
2. replacePattern : negated conditional → KILLED
3. replacePattern : negated conditional → KILLED
        if (source == null || regex == null || replacement == null) {
5160 1 1. replacePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return source;
5161
        }
5162 1 1. replacePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(replacement);
5163
    }
5164
5165
    /**
5166
     * <p>Removes each substring of the source String that matches the given regular expression using the DOTALL option.
5167
     * </p>
5168
     *
5169
     * This call is a {@code null} safe equivalent to:
5170
     * <ul>
5171
     * <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, StringUtils.EMPTY)}</li>
5172
     * <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(StringUtils.EMPTY)}</li>
5173
     * </ul>
5174
     *
5175
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5176
     *
5177
     * <pre>
5178
     * StringUtils.removePattern(null, *)       = null
5179
     * StringUtils.removePattern("any", null)   = "any"
5180
     * StringUtils.removePattern("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")  = "AB"
5181
     * StringUtils.removePattern("ABCabc123", "[a-z]")    = "ABC123"
5182
     * </pre>
5183
     *
5184
     * @param source
5185
     *            the source string
5186
     * @param regex
5187
     *            the regular expression to which this string is to be matched
5188
     * @return The resulting {@code String}
5189
     * @see #replacePattern(String, String, String)
5190
     * @see String#replaceAll(String, String)
5191
     * @see Pattern#DOTALL
5192
     * @since 3.2
5193
     * @since 3.5 Changed {@code null} reference passed to this method is a no-op.
5194
     */
5195
    public static String removePattern(final String source, final String regex) {
5196 1 1. removePattern : mutated return of Object value for org/apache/commons/lang3/StringUtils::removePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replacePattern(source, regex, StringUtils.EMPTY);
5197
    }
5198
5199
    /**
5200
     * <p>Replaces each substring of the text String that matches the given regular expression
5201
     * with the given replacement.</p>
5202
     *
5203
     * This method is a {@code null} safe equivalent to:
5204
     * <ul>
5205
     *  <li>{@code text.replaceAll(regex, replacement)}</li>
5206
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceAll(replacement)}</li>
5207
     * </ul>
5208
     *
5209
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5210
     *
5211
     * <p>Unlike in the {@link #replacePattern(String, String, String)} method, the {@link Pattern#DOTALL} option
5212
     * is NOT automatically added.
5213
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5214
     * DOTALL is also know as single-line mode in Perl.</p>
5215
     *
5216
     * <pre>
5217
     * StringUtils.replaceAll(null, *, *)       = null
5218
     * StringUtils.replaceAll("any", null, *)   = "any"
5219
     * StringUtils.replaceAll("any", *, null)   = "any"
5220
     * StringUtils.replaceAll("", "", "zzz")    = "zzz"
5221
     * StringUtils.replaceAll("", ".*", "zzz")  = "zzz"
5222
     * StringUtils.replaceAll("", ".+", "zzz")  = ""
5223
     * StringUtils.replaceAll("abc", "", "ZZ")  = "ZZaZZbZZcZZ"
5224
     * StringUtils.replaceAll("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")      = "z\nz"
5225
     * StringUtils.replaceAll("&lt;__&gt;\n&lt;__&gt;", "(?s)&lt;.*&gt;", "z")  = "z"
5226
     * StringUtils.replaceAll("ABCabc123", "[a-z]", "_")       = "ABC___123"
5227
     * StringUtils.replaceAll("ABCabc123", "[^A-Z0-9]+", "_")  = "ABC_123"
5228
     * StringUtils.replaceAll("ABCabc123", "[^A-Z0-9]+", "")   = "ABC123"
5229
     * StringUtils.replaceAll("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum_dolor_sit"
5230
     * </pre>
5231
     *
5232
     * @param text  text to search and replace in, may be null
5233
     * @param regex  the regular expression to which this string is to be matched
5234
     * @param replacement  the string to be substituted for each match
5235
     * @return  the text with any replacements processed,
5236
     *              {@code null} if null String input
5237
     *
5238
     * @throws  java.util.regex.PatternSyntaxException
5239
     *              if the regular expression's syntax is invalid
5240
     *
5241
     * @see #replacePattern(String, String, String)
5242
     * @see String#replaceAll(String, String)
5243
     * @see java.util.regex.Pattern
5244
     * @see java.util.regex.Pattern#DOTALL
5245
     * @since 3.5
5246
     */
5247
    public static String replaceAll(final String text, final String regex, final String replacement) {
5248 3 1. replaceAll : negated conditional → KILLED
2. replaceAll : negated conditional → KILLED
3. replaceAll : negated conditional → KILLED
        if (text == null || regex == null|| replacement == null ) {
5249 1 1. replaceAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5250
        }
5251 1 1. replaceAll : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return text.replaceAll(regex, replacement);
5252
    }
5253
5254
    /**
5255
     * <p>Replaces the first substring of the text string that matches the given regular expression
5256
     * with the given replacement.</p>
5257
     *
5258
     * This method is a {@code null} safe equivalent to:
5259
     * <ul>
5260
     *  <li>{@code text.replaceFirst(regex, replacement)}</li>
5261
     *  <li>{@code Pattern.compile(regex).matcher(text).replaceFirst(replacement)}</li>
5262
     * </ul>
5263
     *
5264
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5265
     *
5266
     * <p>The {@link Pattern#DOTALL} option is NOT automatically added.
5267
     * To use the DOTALL option prepend <code>"(?s)"</code> to the regex.
5268
     * DOTALL is also know as single-line mode in Perl.</p>
5269
     *
5270
     * <pre>
5271
     * StringUtils.replaceFirst(null, *, *)       = null
5272
     * StringUtils.replaceFirst("any", null, *)   = "any"
5273
     * StringUtils.replaceFirst("any", *, null)   = "any"
5274
     * StringUtils.replaceFirst("", "", "zzz")    = "zzz"
5275
     * StringUtils.replaceFirst("", ".*", "zzz")  = "zzz"
5276
     * StringUtils.replaceFirst("", ".+", "zzz")  = ""
5277
     * StringUtils.replaceFirst("abc", "", "ZZ")  = "ZZabc"
5278
     * StringUtils.replaceFirst("&lt;__&gt;\n&lt;__&gt;", "&lt;.*&gt;", "z")      = "z\n&lt;__&gt;"
5279
     * StringUtils.replaceFirst("&lt;__&gt;\n&lt;__&gt;", "(?s)&lt;.*&gt;", "z")  = "z"
5280
     * StringUtils.replaceFirst("ABCabc123", "[a-z]", "_")          = "ABC_bc123"
5281
     * StringUtils.replaceFirst("ABCabc123abc", "[^A-Z0-9]+", "_")  = "ABC_123abc"
5282
     * StringUtils.replaceFirst("ABCabc123abc", "[^A-Z0-9]+", "")   = "ABC123abc"
5283
     * StringUtils.replaceFirst("Lorem ipsum  dolor   sit", "( +)([a-z]+)", "_$2")  = "Lorem_ipsum  dolor   sit"
5284
     * </pre>
5285
     *
5286
     * @param text  text to search and replace in, may be null
5287
     * @param regex  the regular expression to which this string is to be matched
5288
     * @param replacement  the string to be substituted for the first match
5289
     * @return  the text with the first replacement processed,
5290
     *              {@code null} if null String input
5291
     *
5292
     * @throws  java.util.regex.PatternSyntaxException
5293
     *              if the regular expression's syntax is invalid
5294
     *
5295
     * @see String#replaceFirst(String, String)
5296
     * @see java.util.regex.Pattern
5297
     * @see java.util.regex.Pattern#DOTALL
5298
     * @since 3.5
5299
     */
5300
    public static String replaceFirst(final String text, final String regex, final String replacement) {
5301 3 1. replaceFirst : negated conditional → KILLED
2. replaceFirst : negated conditional → KILLED
3. replaceFirst : negated conditional → KILLED
        if (text == null || regex == null|| replacement == null ) {
5302 1 1. replaceFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5303
        }
5304 1 1. replaceFirst : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return text.replaceFirst(regex, replacement);
5305
    }
5306
5307
    /**
5308
     * <p>Replaces all occurrences of a String within another String.</p>
5309
     *
5310
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5311
     *
5312
     * <pre>
5313
     * StringUtils.replace(null, *, *)        = null
5314
     * StringUtils.replace("", *, *)          = ""
5315
     * StringUtils.replace("any", null, *)    = "any"
5316
     * StringUtils.replace("any", *, null)    = "any"
5317
     * StringUtils.replace("any", "", *)      = "any"
5318
     * StringUtils.replace("aba", "a", null)  = "aba"
5319
     * StringUtils.replace("aba", "a", "")    = "b"
5320
     * StringUtils.replace("aba", "a", "z")   = "zbz"
5321
     * </pre>
5322
     *
5323
     * @see #replace(String text, String searchString, String replacement, int max)
5324
     * @param text  text to search and replace in, may be null
5325
     * @param searchString  the String to search for, may be null
5326
     * @param replacement  the String to replace it with, may be null
5327
     * @return the text with any replacements processed,
5328
     *  {@code null} if null String input
5329
     */
5330
    public static String replace(final String text, final String searchString, final String replacement) {
5331 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, -1);
5332
    }
5333
5334
    /**
5335
    * <p>Case insensitively replaces all occurrences of a String within another String.</p>
5336
    *
5337
    * <p>A {@code null} reference passed to this method is a no-op.</p>
5338
    *
5339
    * <pre>
5340
    * StringUtils.replaceIgnoreCase(null, *, *)        = null
5341
    * StringUtils.replaceIgnoreCase("", *, *)          = ""
5342
    * StringUtils.replaceIgnoreCase("any", null, *)    = "any"
5343
    * StringUtils.replaceIgnoreCase("any", *, null)    = "any"
5344
    * StringUtils.replaceIgnoreCase("any", "", *)      = "any"
5345
    * StringUtils.replaceIgnoreCase("aba", "a", null)  = "aba"
5346
    * StringUtils.replaceIgnoreCase("abA", "A", "")    = "b"
5347
    * StringUtils.replaceIgnoreCase("aba", "A", "z")   = "zbz"
5348
    * </pre>
5349
    *
5350
    * @see #replaceIgnoreCase(String text, String searchString, String replacement, int max)
5351
    * @param text  text to search and replace in, may be null
5352
    * @param searchString  the String to search for (case insensitive), may be null
5353
    * @param replacement  the String to replace it with, may be null
5354
    * @return the text with any replacements processed,
5355
    *  {@code null} if null String input
5356
    * @since 3.5
5357
    */
5358
   public static String replaceIgnoreCase(final String text, final String searchString, final String replacement) {
5359 1 1. replaceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
       return replaceIgnoreCase(text, searchString, replacement, -1);
5360
   }
5361
5362
    /**
5363
     * <p>Replaces a String with another String inside a larger String,
5364
     * for the first {@code max} values of the search String.</p>
5365
     *
5366
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5367
     *
5368
     * <pre>
5369
     * StringUtils.replace(null, *, *, *)         = null
5370
     * StringUtils.replace("", *, *, *)           = ""
5371
     * StringUtils.replace("any", null, *, *)     = "any"
5372
     * StringUtils.replace("any", *, null, *)     = "any"
5373
     * StringUtils.replace("any", "", *, *)       = "any"
5374
     * StringUtils.replace("any", *, *, 0)        = "any"
5375
     * StringUtils.replace("abaa", "a", null, -1) = "abaa"
5376
     * StringUtils.replace("abaa", "a", "", -1)   = "b"
5377
     * StringUtils.replace("abaa", "a", "z", 0)   = "abaa"
5378
     * StringUtils.replace("abaa", "a", "z", 1)   = "zbaa"
5379
     * StringUtils.replace("abaa", "a", "z", 2)   = "zbza"
5380
     * StringUtils.replace("abaa", "a", "z", -1)  = "zbzz"
5381
     * </pre>
5382
     *
5383
     * @param text  text to search and replace in, may be null
5384
     * @param searchString  the String to search for, may be null
5385
     * @param replacement  the String to replace it with, may be null
5386
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5387
     * @return the text with any replacements processed,
5388
     *  {@code null} if null String input
5389
     */
5390
    public static String replace(final String text, final String searchString, final String replacement, final int max) {
5391 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, max, false);
5392
    }
5393
5394
    /**
5395
     * <p>Replaces a String with another String inside a larger String,
5396
     * for the first {@code max} values of the search String, 
5397
     * case sensitively/insensisitively based on {@code ignoreCase} value.</p>
5398
     *
5399
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5400
     *
5401
     * <pre>
5402
     * StringUtils.replace(null, *, *, *, false)         = null
5403
     * StringUtils.replace("", *, *, *, false)           = ""
5404
     * StringUtils.replace("any", null, *, *, false)     = "any"
5405
     * StringUtils.replace("any", *, null, *, false)     = "any"
5406
     * StringUtils.replace("any", "", *, *, false)       = "any"
5407
     * StringUtils.replace("any", *, *, 0, false)        = "any"
5408
     * StringUtils.replace("abaa", "a", null, -1, false) = "abaa"
5409
     * StringUtils.replace("abaa", "a", "", -1, false)   = "b"
5410
     * StringUtils.replace("abaa", "a", "z", 0, false)   = "abaa"
5411
     * StringUtils.replace("abaa", "A", "z", 1, false)   = "abaa"
5412
     * StringUtils.replace("abaa", "A", "z", 1, true)   = "zbaa"
5413
     * StringUtils.replace("abAa", "a", "z", 2, true)   = "zbza"
5414
     * StringUtils.replace("abAa", "a", "z", -1, true)  = "zbzz"
5415
     * </pre>
5416
     *
5417
     * @param text  text to search and replace in, may be null
5418
     * @param searchString  the String to search for (case insensitive), may be null
5419
     * @param replacement  the String to replace it with, may be null
5420
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5421
     * @param ignoreCase if true replace is case insensitive, otherwise case sensitive
5422
     * @return the text with any replacements processed,
5423
     *  {@code null} if null String input
5424
     */
5425
     private static String replace(final String text, String searchString, final String replacement, int max, final boolean ignoreCase) {
5426 4 1. replace : negated conditional → KILLED
2. replace : negated conditional → KILLED
3. replace : negated conditional → KILLED
4. replace : negated conditional → KILLED
         if (isEmpty(text) || isEmpty(searchString) || replacement == null || max == 0) {
5427 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
             return text;
5428
         }
5429
         String searchText = text;
5430 1 1. replace : negated conditional → KILLED
         if (ignoreCase) {
5431
             searchText = text.toLowerCase();
5432
             searchString = searchString.toLowerCase();
5433
         }
5434
         int start = 0;
5435
         int end = searchText.indexOf(searchString, start);
5436 1 1. replace : negated conditional → KILLED
         if (end == INDEX_NOT_FOUND) {
5437 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
             return text;
5438
         }
5439
         final int replLength = searchString.length();
5440 1 1. replace : Replaced integer subtraction with addition → SURVIVED
         int increase = replacement.length() - replLength;
5441 2 1. replace : changed conditional boundary → SURVIVED
2. replace : negated conditional → KILLED
         increase = increase < 0 ? 0 : increase;
5442 5 1. replace : changed conditional boundary → SURVIVED
2. replace : changed conditional boundary → SURVIVED
3. replace : Replaced integer multiplication with division → SURVIVED
4. replace : negated conditional → SURVIVED
5. replace : negated conditional → SURVIVED
         increase *= max < 0 ? 16 : max > 64 ? 64 : max;
5443 1 1. replace : Replaced integer addition with subtraction → KILLED
         final StringBuilder buf = new StringBuilder(text.length() + increase);
5444 1 1. replace : negated conditional → KILLED
         while (end != INDEX_NOT_FOUND) {
5445
             buf.append(text.substring(start, end)).append(replacement);
5446 1 1. replace : Replaced integer addition with subtraction → KILLED
             start = end + replLength;
5447 2 1. replace : Changed increment from -1 to 1 → KILLED
2. replace : negated conditional → KILLED
             if (--max == 0) {
5448
                 break;
5449
             }
5450
             end = searchText.indexOf(searchString, start);
5451
         }
5452
         buf.append(text.substring(start));
5453 1 1. replace : mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED
         return buf.toString();
5454
     }
5455
5456
    /**
5457
     * <p>Case insensitively replaces a String with another String inside a larger String,
5458
     * for the first {@code max} values of the search String.</p>
5459
     *
5460
     * <p>A {@code null} reference passed to this method is a no-op.</p>
5461
     *
5462
     * <pre>
5463
     * StringUtils.replaceIgnoreCase(null, *, *, *)         = null
5464
     * StringUtils.replaceIgnoreCase("", *, *, *)           = ""
5465
     * StringUtils.replaceIgnoreCase("any", null, *, *)     = "any"
5466
     * StringUtils.replaceIgnoreCase("any", *, null, *)     = "any"
5467
     * StringUtils.replaceIgnoreCase("any", "", *, *)       = "any"
5468
     * StringUtils.replaceIgnoreCase("any", *, *, 0)        = "any"
5469
     * StringUtils.replaceIgnoreCase("abaa", "a", null, -1) = "abaa"
5470
     * StringUtils.replaceIgnoreCase("abaa", "a", "", -1)   = "b"
5471
     * StringUtils.replaceIgnoreCase("abaa", "a", "z", 0)   = "abaa"
5472
     * StringUtils.replaceIgnoreCase("abaa", "A", "z", 1)   = "zbaa"
5473
     * StringUtils.replaceIgnoreCase("abAa", "a", "z", 2)   = "zbza"
5474
     * StringUtils.replaceIgnoreCase("abAa", "a", "z", -1)  = "zbzz"
5475
     * </pre>
5476
     *
5477
     * @param text  text to search and replace in, may be null
5478
     * @param searchString  the String to search for (case insensitive), may be null
5479
     * @param replacement  the String to replace it with, may be null
5480
     * @param max  maximum number of values to replace, or {@code -1} if no maximum
5481
     * @return the text with any replacements processed,
5482
     *  {@code null} if null String input
5483
     * @since 3.5
5484
     */
5485
    public static String replaceIgnoreCase(final String text, final String searchString, final String replacement, final int max) {
5486 1 1. replaceIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replace(text, searchString, replacement, max, true);
5487
    }
5488
5489
    /**
5490
     * <p>
5491
     * Replaces all occurrences of Strings within another String.
5492
     * </p>
5493
     *
5494
     * <p>
5495
     * A {@code null} reference passed to this method is a no-op, or if
5496
     * any "search string" or "string to replace" is null, that replace will be
5497
     * ignored. This will not repeat. For repeating replaces, call the
5498
     * overloaded method.
5499
     * </p>
5500
     *
5501
     * <pre>
5502
     *  StringUtils.replaceEach(null, *, *)        = null
5503
     *  StringUtils.replaceEach("", *, *)          = ""
5504
     *  StringUtils.replaceEach("aba", null, null) = "aba"
5505
     *  StringUtils.replaceEach("aba", new String[0], null) = "aba"
5506
     *  StringUtils.replaceEach("aba", null, new String[0]) = "aba"
5507
     *  StringUtils.replaceEach("aba", new String[]{"a"}, null)  = "aba"
5508
     *  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""})  = "b"
5509
     *  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"})  = "aba"
5510
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"})  = "wcte"
5511
     *  (example of how it does not repeat)
5512
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"})  = "dcte"
5513
     * </pre>
5514
     *
5515
     * @param text
5516
     *            text to search and replace in, no-op if null
5517
     * @param searchList
5518
     *            the Strings to search for, no-op if null
5519
     * @param replacementList
5520
     *            the Strings to replace them with, no-op if null
5521
     * @return the text with any replacements processed, {@code null} if
5522
     *         null String input
5523
     * @throws IllegalArgumentException
5524
     *             if the lengths of the arrays are not the same (null is ok,
5525
     *             and/or size 0)
5526
     * @since 2.4
5527
     */
5528
    public static String replaceEach(final String text, final String[] searchList, final String[] replacementList) {
5529 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(text, searchList, replacementList, false, 0);
5530
    }
5531
5532
    /**
5533
     * <p>
5534
     * Replaces all occurrences of Strings within another String.
5535
     * </p>
5536
     *
5537
     * <p>
5538
     * A {@code null} reference passed to this method is a no-op, or if
5539
     * any "search string" or "string to replace" is null, that replace will be
5540
     * ignored.
5541
     * </p>
5542
     *
5543
     * <pre>
5544
     *  StringUtils.replaceEachRepeatedly(null, *, *) = null
5545
     *  StringUtils.replaceEachRepeatedly("", *, *) = ""
5546
     *  StringUtils.replaceEachRepeatedly("aba", null, null) = "aba"
5547
     *  StringUtils.replaceEachRepeatedly("aba", new String[0], null) = "aba"
5548
     *  StringUtils.replaceEachRepeatedly("aba", null, new String[0]) = "aba"
5549
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{"a"}, null) = "aba"
5550
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{"a"}, new String[]{""}) = "b"
5551
     *  StringUtils.replaceEachRepeatedly("aba", new String[]{null}, new String[]{"a"}) = "aba"
5552
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte"
5553
     *  (example of how it repeats)
5554
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "tcte"
5555
     *  StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}) = IllegalStateException
5556
     * </pre>
5557
     *
5558
     * @param text
5559
     *            text to search and replace in, no-op if null
5560
     * @param searchList
5561
     *            the Strings to search for, no-op if null
5562
     * @param replacementList
5563
     *            the Strings to replace them with, no-op if null
5564
     * @return the text with any replacements processed, {@code null} if
5565
     *         null String input
5566
     * @throws IllegalStateException
5567
     *             if the search is repeating and there is an endless loop due
5568
     *             to outputs of one being inputs to another
5569
     * @throws IllegalArgumentException
5570
     *             if the lengths of the arrays are not the same (null is ok,
5571
     *             and/or size 0)
5572
     * @since 2.4
5573
     */
5574
    public static String replaceEachRepeatedly(final String text, final String[] searchList, final String[] replacementList) {
5575
        // timeToLive should be 0 if not used or nothing to replace, else it's
5576
        // the length of the replace array
5577 1 1. replaceEachRepeatedly : negated conditional → KILLED
        final int timeToLive = searchList == null ? 0 : searchList.length;
5578 1 1. replaceEachRepeatedly : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEachRepeatedly to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(text, searchList, replacementList, true, timeToLive);
5579
    }
5580
5581
    /**
5582
     * <p>
5583
     * Replace all occurrences of Strings within another String.
5584
     * This is a private recursive helper method for {@link #replaceEachRepeatedly(String, String[], String[])} and
5585
     * {@link #replaceEach(String, String[], String[])}
5586
     * </p>
5587
     *
5588
     * <p>
5589
     * A {@code null} reference passed to this method is a no-op, or if
5590
     * any "search string" or "string to replace" is null, that replace will be
5591
     * ignored.
5592
     * </p>
5593
     *
5594
     * <pre>
5595
     *  StringUtils.replaceEach(null, *, *, *, *) = null
5596
     *  StringUtils.replaceEach("", *, *, *, *) = ""
5597
     *  StringUtils.replaceEach("aba", null, null, *, *) = "aba"
5598
     *  StringUtils.replaceEach("aba", new String[0], null, *, *) = "aba"
5599
     *  StringUtils.replaceEach("aba", null, new String[0], *, *) = "aba"
5600
     *  StringUtils.replaceEach("aba", new String[]{"a"}, null, *, *) = "aba"
5601
     *  StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""}, *, >=0) = "b"
5602
     *  StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"}, *, >=0) = "aba"
5603
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}, *, >=0) = "wcte"
5604
     *  (example of how it repeats)
5605
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, false, >=0) = "dcte"
5606
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}, true, >=2) = "tcte"
5607
     *  StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "ab"}, *, *) = IllegalStateException
5608
     * </pre>
5609
     *
5610
     * @param text
5611
     *            text to search and replace in, no-op if null
5612
     * @param searchList
5613
     *            the Strings to search for, no-op if null
5614
     * @param replacementList
5615
     *            the Strings to replace them with, no-op if null
5616
     * @param repeat if true, then replace repeatedly
5617
     *       until there are no more possible replacements or timeToLive < 0
5618
     * @param timeToLive
5619
     *            if less than 0 then there is a circular reference and endless
5620
     *            loop
5621
     * @return the text with any replacements processed, {@code null} if
5622
     *         null String input
5623
     * @throws IllegalStateException
5624
     *             if the search is repeating and there is an endless loop due
5625
     *             to outputs of one being inputs to another
5626
     * @throws IllegalArgumentException
5627
     *             if the lengths of the arrays are not the same (null is ok,
5628
     *             and/or size 0)
5629
     * @since 2.4
5630
     */
5631
    private static String replaceEach(
5632
            final String text, final String[] searchList, final String[] replacementList, final boolean repeat, final int timeToLive) {
5633
5634
        // mchyzer Performance note: This creates very few new objects (one major goal)
5635
        // let me know if there are performance requests, we can create a harness to measure
5636
5637 6 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
4. replaceEach : negated conditional → KILLED
5. replaceEach : negated conditional → KILLED
6. replaceEach : negated conditional → KILLED
        if (text == null || text.isEmpty() || searchList == null ||
5638
                searchList.length == 0 || replacementList == null || replacementList.length == 0) {
5639 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5640
        }
5641
5642
        // if recursing, this shouldn't be less than 0
5643 2 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : negated conditional → KILLED
        if (timeToLive < 0) {
5644
            throw new IllegalStateException("Aborting to protect against StackOverflowError - " +
5645
                                            "output of one loop is the input of another");
5646
        }
5647
5648
        final int searchLength = searchList.length;
5649
        final int replacementLength = replacementList.length;
5650
5651
        // make sure lengths are ok, these need to be equal
5652 1 1. replaceEach : negated conditional → KILLED
        if (searchLength != replacementLength) {
5653
            throw new IllegalArgumentException("Search and Replace array lengths don't match: "
5654
                + searchLength
5655
                + " vs "
5656
                + replacementLength);
5657
        }
5658
5659
        // keep track of which still have matches
5660
        final boolean[] noMoreMatchesForReplIndex = new boolean[searchLength];
5661
5662
        // index on index that the match was found
5663
        int textIndex = -1;
5664
        int replaceIndex = -1;
5665
        int tempIndex = -1;
5666
5667
        // index of replace array that will replace the search string found
5668
        // NOTE: logic duplicated below START
5669 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
        for (int i = 0; i < searchLength; i++) {
5670 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
            if (noMoreMatchesForReplIndex[i] || searchList[i] == null ||
5671 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                    searchList[i].isEmpty() || replacementList[i] == null) {
5672
                continue;
5673
            }
5674
            tempIndex = text.indexOf(searchList[i]);
5675
5676
            // see if we need to keep searching for this
5677 1 1. replaceEach : negated conditional → KILLED
            if (tempIndex == -1) {
5678
                noMoreMatchesForReplIndex[i] = true;
5679
            } else {
5680 3 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
                if (textIndex == -1 || tempIndex < textIndex) {
5681
                    textIndex = tempIndex;
5682
                    replaceIndex = i;
5683
                }
5684
            }
5685
        }
5686
        // NOTE: logic mostly below END
5687
5688
        // no search strings found, we are done
5689 1 1. replaceEach : negated conditional → KILLED
        if (textIndex == -1) {
5690 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return text;
5691
        }
5692
5693
        int start = 0;
5694
5695
        // get a good guess on the size of the result buffer so it doesn't have to double if it goes over a bit
5696
        int increase = 0;
5697
5698
        // count the replacement text elements that are larger than their corresponding text being replaced
5699 3 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : changed conditional boundary → KILLED
3. replaceEach : Changed increment from 1 to -1 → KILLED
        for (int i = 0; i < searchList.length; i++) {
5700 2 1. replaceEach : negated conditional → SURVIVED
2. replaceEach : negated conditional → KILLED
            if (searchList[i] == null || replacementList[i] == null) {
5701
                continue;
5702
            }
5703 1 1. replaceEach : Replaced integer subtraction with addition → SURVIVED
            final int greater = replacementList[i].length() - searchList[i].length();
5704 2 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → SURVIVED
            if (greater > 0) {
5705 2 1. replaceEach : Replaced integer multiplication with division → SURVIVED
2. replaceEach : Replaced integer addition with subtraction → SURVIVED
                increase += 3 * greater; // assume 3 matches
5706
            }
5707
        }
5708
        // have upper-bound at 20% increase, then let Java take over
5709 1 1. replaceEach : Replaced integer division with multiplication → SURVIVED
        increase = Math.min(increase, text.length() / 5);
5710
5711 1 1. replaceEach : Replaced integer addition with subtraction → SURVIVED
        final StringBuilder buf = new StringBuilder(text.length() + increase);
5712
5713 1 1. replaceEach : negated conditional → KILLED
        while (textIndex != -1) {
5714
5715 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
            for (int i = start; i < textIndex; i++) {
5716
                buf.append(text.charAt(i));
5717
            }
5718
            buf.append(replacementList[replaceIndex]);
5719
5720 1 1. replaceEach : Replaced integer addition with subtraction → KILLED
            start = textIndex + searchList[replaceIndex].length();
5721
5722
            textIndex = -1;
5723
            replaceIndex = -1;
5724
            tempIndex = -1;
5725
            // find the next earliest match
5726
            // NOTE: logic mostly duplicated above START
5727 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
            for (int i = 0; i < searchLength; i++) {
5728 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                if (noMoreMatchesForReplIndex[i] || searchList[i] == null ||
5729 2 1. replaceEach : negated conditional → KILLED
2. replaceEach : negated conditional → KILLED
                        searchList[i].isEmpty() || replacementList[i] == null) {
5730
                    continue;
5731
                }
5732
                tempIndex = text.indexOf(searchList[i], start);
5733
5734
                // see if we need to keep searching for this
5735 1 1. replaceEach : negated conditional → KILLED
                if (tempIndex == -1) {
5736
                    noMoreMatchesForReplIndex[i] = true;
5737
                } else {
5738 3 1. replaceEach : changed conditional boundary → SURVIVED
2. replaceEach : negated conditional → KILLED
3. replaceEach : negated conditional → KILLED
                    if (textIndex == -1 || tempIndex < textIndex) {
5739
                        textIndex = tempIndex;
5740
                        replaceIndex = i;
5741
                    }
5742
                }
5743
            }
5744
            // NOTE: logic duplicated above END
5745
5746
        }
5747
        final int textLength = text.length();
5748 3 1. replaceEach : changed conditional boundary → KILLED
2. replaceEach : Changed increment from 1 to -1 → KILLED
3. replaceEach : negated conditional → KILLED
        for (int i = start; i < textLength; i++) {
5749
            buf.append(text.charAt(i));
5750
        }
5751
        final String result = buf.toString();
5752 1 1. replaceEach : negated conditional → KILLED
        if (!repeat) {
5753 1 1. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return result;
5754
        }
5755
5756 2 1. replaceEach : Replaced integer subtraction with addition → KILLED
2. replaceEach : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return replaceEach(result, searchList, replacementList, repeat, timeToLive - 1);
5757
    }
5758
5759
    // Replace, character based
5760
    //-----------------------------------------------------------------------
5761
    /**
5762
     * <p>Replaces all occurrences of a character in a String with another.
5763
     * This is a null-safe version of {@link String#replace(char, char)}.</p>
5764
     *
5765
     * <p>A {@code null} string input returns {@code null}.
5766
     * An empty ("") string input returns an empty string.</p>
5767
     *
5768
     * <pre>
5769
     * StringUtils.replaceChars(null, *, *)        = null
5770
     * StringUtils.replaceChars("", *, *)          = ""
5771
     * StringUtils.replaceChars("abcba", 'b', 'y') = "aycya"
5772
     * StringUtils.replaceChars("abcba", 'z', 'y') = "abcba"
5773
     * </pre>
5774
     *
5775
     * @param str  String to replace characters in, may be null
5776
     * @param searchChar  the character to search for, may be null
5777
     * @param replaceChar  the character to replace, may be null
5778
     * @return modified String, {@code null} if null string input
5779
     * @since 2.0
5780
     */
5781
    public static String replaceChars(final String str, final char searchChar, final char replaceChar) {
5782 1 1. replaceChars : negated conditional → KILLED
        if (str == null) {
5783 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
5784
        }
5785 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.replace(searchChar, replaceChar);
5786
    }
5787
5788
    /**
5789
     * <p>Replaces multiple characters in a String in one go.
5790
     * This method can also be used to delete characters.</p>
5791
     *
5792
     * <p>For example:<br>
5793
     * <code>replaceChars(&quot;hello&quot;, &quot;ho&quot;, &quot;jy&quot;) = jelly</code>.</p>
5794
     *
5795
     * <p>A {@code null} string input returns {@code null}.
5796
     * An empty ("") string input returns an empty string.
5797
     * A null or empty set of search characters returns the input string.</p>
5798
     *
5799
     * <p>The length of the search characters should normally equal the length
5800
     * of the replace characters.
5801
     * If the search characters is longer, then the extra search characters
5802
     * are deleted.
5803
     * If the search characters is shorter, then the extra replace characters
5804
     * are ignored.</p>
5805
     *
5806
     * <pre>
5807
     * StringUtils.replaceChars(null, *, *)           = null
5808
     * StringUtils.replaceChars("", *, *)             = ""
5809
     * StringUtils.replaceChars("abc", null, *)       = "abc"
5810
     * StringUtils.replaceChars("abc", "", *)         = "abc"
5811
     * StringUtils.replaceChars("abc", "b", null)     = "ac"
5812
     * StringUtils.replaceChars("abc", "b", "")       = "ac"
5813
     * StringUtils.replaceChars("abcba", "bc", "yz")  = "ayzya"
5814
     * StringUtils.replaceChars("abcba", "bc", "y")   = "ayya"
5815
     * StringUtils.replaceChars("abcba", "bc", "yzx") = "ayzya"
5816
     * </pre>
5817
     *
5818
     * @param str  String to replace characters in, may be null
5819
     * @param searchChars  a set of characters to search for, may be null
5820
     * @param replaceChars  a set of characters to replace, may be null
5821
     * @return modified String, {@code null} if null string input
5822
     * @since 2.0
5823
     */
5824
    public static String replaceChars(final String str, final String searchChars, String replaceChars) {
5825 2 1. replaceChars : negated conditional → KILLED
2. replaceChars : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(searchChars)) {
5826 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5827
        }
5828 1 1. replaceChars : negated conditional → KILLED
        if (replaceChars == null) {
5829
            replaceChars = EMPTY;
5830
        }
5831
        boolean modified = false;
5832
        final int replaceCharsLength = replaceChars.length();
5833
        final int strLength = str.length();
5834
        final StringBuilder buf = new StringBuilder(strLength);
5835 3 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : Changed increment from 1 to -1 → KILLED
3. replaceChars : negated conditional → KILLED
        for (int i = 0; i < strLength; i++) {
5836
            final char ch = str.charAt(i);
5837
            final int index = searchChars.indexOf(ch);
5838 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
            if (index >= 0) {
5839
                modified = true;
5840 2 1. replaceChars : changed conditional boundary → KILLED
2. replaceChars : negated conditional → KILLED
                if (index < replaceCharsLength) {
5841
                    buf.append(replaceChars.charAt(index));
5842
                }
5843
            } else {
5844
                buf.append(ch);
5845
            }
5846
        }
5847 1 1. replaceChars : negated conditional → KILLED
        if (modified) {
5848 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return buf.toString();
5849
        }
5850 1 1. replaceChars : mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
5851
    }
5852
5853
    // Overlay
5854
    //-----------------------------------------------------------------------
5855
    /**
5856
     * <p>Overlays part of a String with another String.</p>
5857
     *
5858
     * <p>A {@code null} string input returns {@code null}.
5859
     * A negative index is treated as zero.
5860
     * An index greater than the string length is treated as the string length.
5861
     * The start index is always the smaller of the two indices.</p>
5862
     *
5863
     * <pre>
5864
     * StringUtils.overlay(null, *, *, *)            = null
5865
     * StringUtils.overlay("", "abc", 0, 0)          = "abc"
5866
     * StringUtils.overlay("abcdef", null, 2, 4)     = "abef"
5867
     * StringUtils.overlay("abcdef", "", 2, 4)       = "abef"
5868
     * StringUtils.overlay("abcdef", "", 4, 2)       = "abef"
5869
     * StringUtils.overlay("abcdef", "zzzz", 2, 4)   = "abzzzzef"
5870
     * StringUtils.overlay("abcdef", "zzzz", 4, 2)   = "abzzzzef"
5871
     * StringUtils.overlay("abcdef", "zzzz", -1, 4)  = "zzzzef"
5872
     * StringUtils.overlay("abcdef", "zzzz", 2, 8)   = "abzzzz"
5873
     * StringUtils.overlay("abcdef", "zzzz", -2, -3) = "zzzzabcdef"
5874
     * StringUtils.overlay("abcdef", "zzzz", 8, 10)  = "abcdefzzzz"
5875
     * </pre>
5876
     *
5877
     * @param str  the String to do overlaying in, may be null
5878
     * @param overlay  the String to overlay, may be null
5879
     * @param start  the position to start overlaying at
5880
     * @param end  the position to stop overlaying before
5881
     * @return overlayed String, {@code null} if null String input
5882
     * @since 2.0
5883
     */
5884
    public static String overlay(final String str, String overlay, int start, int end) {
5885 1 1. overlay : negated conditional → KILLED
        if (str == null) {
5886 1 1. overlay : mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
5887
        }
5888 1 1. overlay : negated conditional → KILLED
        if (overlay == null) {
5889
            overlay = EMPTY;
5890
        }
5891
        final int len = str.length();
5892 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start < 0) {
5893
            start = 0;
5894
        }
5895 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start > len) {
5896
            start = len;
5897
        }
5898 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (end < 0) {
5899
            end = 0;
5900
        }
5901 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (end > len) {
5902
            end = len;
5903
        }
5904 2 1. overlay : changed conditional boundary → SURVIVED
2. overlay : negated conditional → KILLED
        if (start > end) {
5905
            final int temp = start;
5906
            start = end;
5907
            end = temp;
5908
        }
5909 5 1. overlay : Replaced integer subtraction with addition → SURVIVED
2. overlay : Replaced integer addition with subtraction → KILLED
3. overlay : Replaced integer addition with subtraction → KILLED
4. overlay : Replaced integer addition with subtraction → KILLED
5. overlay : mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new StringBuilder(len + start - end + overlay.length() + 1)
5910
            .append(str.substring(0, start))
5911
            .append(overlay)
5912
            .append(str.substring(end))
5913
            .toString();
5914
    }
5915
5916
    // Chomping
5917
    //-----------------------------------------------------------------------
5918
    /**
5919
     * <p>Removes one newline from end of a String if it's there,
5920
     * otherwise leave it alone.  A newline is &quot;{@code \n}&quot;,
5921
     * &quot;{@code \r}&quot;, or &quot;{@code \r\n}&quot;.</p>
5922
     *
5923
     * <p>NOTE: This method changed in 2.0.
5924
     * It now more closely matches Perl chomp.</p>
5925
     *
5926
     * <pre>
5927
     * StringUtils.chomp(null)          = null
5928
     * StringUtils.chomp("")            = ""
5929
     * StringUtils.chomp("abc \r")      = "abc "
5930
     * StringUtils.chomp("abc\n")       = "abc"
5931
     * StringUtils.chomp("abc\r\n")     = "abc"
5932
     * StringUtils.chomp("abc\r\n\r\n") = "abc\r\n"
5933
     * StringUtils.chomp("abc\n\r")     = "abc\n"
5934
     * StringUtils.chomp("abc\n\rabc")  = "abc\n\rabc"
5935
     * StringUtils.chomp("\r")          = ""
5936
     * StringUtils.chomp("\n")          = ""
5937
     * StringUtils.chomp("\r\n")        = ""
5938
     * </pre>
5939
     *
5940
     * @param str  the String to chomp a newline from, may be null
5941
     * @return String without newline, {@code null} if null String input
5942
     */
5943
    public static String chomp(final String str) {
5944 1 1. chomp : negated conditional → KILLED
        if (isEmpty(str)) {
5945 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5946
        }
5947
5948 1 1. chomp : negated conditional → KILLED
        if (str.length() == 1) {
5949
            final char ch = str.charAt(0);
5950 2 1. chomp : negated conditional → KILLED
2. chomp : negated conditional → KILLED
            if (ch == CharUtils.CR || ch == CharUtils.LF) {
5951 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return EMPTY;
5952
            }
5953 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
5954
        }
5955
5956 1 1. chomp : Replaced integer subtraction with addition → KILLED
        int lastIdx = str.length() - 1;
5957
        final char last = str.charAt(lastIdx);
5958
5959 1 1. chomp : negated conditional → KILLED
        if (last == CharUtils.LF) {
5960 2 1. chomp : Replaced integer subtraction with addition → KILLED
2. chomp : negated conditional → KILLED
            if (str.charAt(lastIdx - 1) == CharUtils.CR) {
5961 1 1. chomp : Changed increment from -1 to 1 → KILLED
                lastIdx--;
5962
            }
5963 1 1. chomp : negated conditional → KILLED
        } else if (last != CharUtils.CR) {
5964 1 1. chomp : Changed increment from 1 to -1 → KILLED
            lastIdx++;
5965
        }
5966 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.substring(0, lastIdx);
5967
    }
5968
5969
    /**
5970
     * <p>Removes {@code separator} from the end of
5971
     * {@code str} if it's there, otherwise leave it alone.</p>
5972
     *
5973
     * <p>NOTE: This method changed in version 2.0.
5974
     * It now more closely matches Perl chomp.
5975
     * For the previous behavior, use {@link #substringBeforeLast(String, String)}.
5976
     * This method uses {@link String#endsWith(String)}.</p>
5977
     *
5978
     * <pre>
5979
     * StringUtils.chomp(null, *)         = null
5980
     * StringUtils.chomp("", *)           = ""
5981
     * StringUtils.chomp("foobar", "bar") = "foo"
5982
     * StringUtils.chomp("foobar", "baz") = "foobar"
5983
     * StringUtils.chomp("foo", "foo")    = ""
5984
     * StringUtils.chomp("foo ", "foo")   = "foo "
5985
     * StringUtils.chomp(" foo", "foo")   = " "
5986
     * StringUtils.chomp("foo", "foooo")  = "foo"
5987
     * StringUtils.chomp("foo", "")       = "foo"
5988
     * StringUtils.chomp("foo", null)     = "foo"
5989
     * </pre>
5990
     *
5991
     * @param str  the String to chomp from, may be null
5992
     * @param separator  separator String, may be null
5993
     * @return String without trailing separator, {@code null} if null String input
5994
     * @deprecated This feature will be removed in Lang 4.0, use {@link StringUtils#removeEnd(String, String)} instead
5995
     */
5996
    @Deprecated
5997
    public static String chomp(final String str, final String separator) {
5998 1 1. chomp : mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return removeEnd(str,separator);
5999
    }
6000
6001
    // Chopping
6002
    //-----------------------------------------------------------------------
6003
    /**
6004
     * <p>Remove the last character from a String.</p>
6005
     *
6006
     * <p>If the String ends in {@code \r\n}, then remove both
6007
     * of them.</p>
6008
     *
6009
     * <pre>
6010
     * StringUtils.chop(null)          = null
6011
     * StringUtils.chop("")            = ""
6012
     * StringUtils.chop("abc \r")      = "abc "
6013
     * StringUtils.chop("abc\n")       = "abc"
6014
     * StringUtils.chop("abc\r\n")     = "abc"
6015
     * StringUtils.chop("abc")         = "ab"
6016
     * StringUtils.chop("abc\nabc")    = "abc\nab"
6017
     * StringUtils.chop("a")           = ""
6018
     * StringUtils.chop("\r")          = ""
6019
     * StringUtils.chop("\n")          = ""
6020
     * StringUtils.chop("\r\n")        = ""
6021
     * </pre>
6022
     *
6023
     * @param str  the String to chop last character from, may be null
6024
     * @return String without last character, {@code null} if null String input
6025
     */
6026
    public static String chop(final String str) {
6027 1 1. chop : negated conditional → KILLED
        if (str == null) {
6028 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6029
        }
6030
        final int strLen = str.length();
6031 2 1. chop : changed conditional boundary → SURVIVED
2. chop : negated conditional → KILLED
        if (strLen < 2) {
6032 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6033
        }
6034 1 1. chop : Replaced integer subtraction with addition → KILLED
        final int lastIdx = strLen - 1;
6035
        final String ret = str.substring(0, lastIdx);
6036
        final char last = str.charAt(lastIdx);
6037 3 1. chop : Replaced integer subtraction with addition → KILLED
2. chop : negated conditional → KILLED
3. chop : negated conditional → KILLED
        if (last == CharUtils.LF && ret.charAt(lastIdx - 1) == CharUtils.CR) {
6038 2 1. chop : Replaced integer subtraction with addition → KILLED
2. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ret.substring(0, lastIdx - 1);
6039
        }
6040 1 1. chop : mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return ret;
6041
    }
6042
6043
    // Conversion
6044
    //-----------------------------------------------------------------------
6045
6046
    // Padding
6047
    //-----------------------------------------------------------------------
6048
    /**
6049
     * <p>Repeat a String {@code repeat} times to form a
6050
     * new String.</p>
6051
     *
6052
     * <pre>
6053
     * StringUtils.repeat(null, 2) = null
6054
     * StringUtils.repeat("", 0)   = ""
6055
     * StringUtils.repeat("", 2)   = ""
6056
     * StringUtils.repeat("a", 3)  = "aaa"
6057
     * StringUtils.repeat("ab", 2) = "abab"
6058
     * StringUtils.repeat("a", -2) = ""
6059
     * </pre>
6060
     *
6061
     * @param str  the String to repeat, may be null
6062
     * @param repeat  number of times to repeat str, negative treated as zero
6063
     * @return a new String consisting of the original String repeated,
6064
     *  {@code null} if null String input
6065
     */
6066
    public static String repeat(final String str, final int repeat) {
6067
        // Performance tuned for 2.0 (JDK1.4)
6068
6069 1 1. repeat : negated conditional → KILLED
        if (str == null) {
6070 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6071
        }
6072 2 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → KILLED
        if (repeat <= 0) {
6073 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6074
        }
6075
        final int inputLength = str.length();
6076 2 1. repeat : negated conditional → KILLED
2. repeat : negated conditional → KILLED
        if (repeat == 1 || inputLength == 0) {
6077 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6078
        }
6079 3 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → SURVIVED
3. repeat : negated conditional → KILLED
        if (inputLength == 1 && repeat <= PAD_LIMIT) {
6080 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return repeat(str.charAt(0), repeat);
6081
        }
6082
6083 1 1. repeat : Replaced integer multiplication with division → KILLED
        final int outputLength = inputLength * repeat;
6084
        switch (inputLength) {
6085
            case 1 :
6086 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return repeat(str.charAt(0), repeat);
6087
            case 2 :
6088
                final char ch0 = str.charAt(0);
6089
                final char ch1 = str.charAt(1);
6090
                final char[] output2 = new char[outputLength];
6091 6 1. repeat : Changed increment from -1 to 1 → TIMED_OUT
2. repeat : Changed increment from -1 to 1 → TIMED_OUT
3. repeat : changed conditional boundary → KILLED
4. repeat : Replaced integer multiplication with division → KILLED
5. repeat : Replaced integer subtraction with addition → KILLED
6. repeat : negated conditional → KILLED
                for (int i = repeat * 2 - 2; i >= 0; i--, i--) {
6092
                    output2[i] = ch0;
6093 1 1. repeat : Replaced integer addition with subtraction → KILLED
                    output2[i + 1] = ch1;
6094
                }
6095 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return new String(output2);
6096
            default :
6097
                final StringBuilder buf = new StringBuilder(outputLength);
6098 3 1. repeat : changed conditional boundary → KILLED
2. repeat : Changed increment from 1 to -1 → KILLED
3. repeat : negated conditional → KILLED
                for (int i = 0; i < repeat; i++) {
6099
                    buf.append(str);
6100
                }
6101 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return buf.toString();
6102
        }
6103
    }
6104
6105
    /**
6106
     * <p>Repeat a String {@code repeat} times to form a
6107
     * new String, with a String separator injected each time. </p>
6108
     *
6109
     * <pre>
6110
     * StringUtils.repeat(null, null, 2) = null
6111
     * StringUtils.repeat(null, "x", 2)  = null
6112
     * StringUtils.repeat("", null, 0)   = ""
6113
     * StringUtils.repeat("", "", 2)     = ""
6114
     * StringUtils.repeat("", "x", 3)    = "xxx"
6115
     * StringUtils.repeat("?", ", ", 3)  = "?, ?, ?"
6116
     * </pre>
6117
     *
6118
     * @param str        the String to repeat, may be null
6119
     * @param separator  the String to inject, may be null
6120
     * @param repeat     number of times to repeat str, negative treated as zero
6121
     * @return a new String consisting of the original String repeated,
6122
     *  {@code null} if null String input
6123
     * @since 2.5
6124
     */
6125
    public static String repeat(final String str, final String separator, final int repeat) {
6126 2 1. repeat : negated conditional → KILLED
2. repeat : negated conditional → KILLED
        if(str == null || separator == null) {
6127 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return repeat(str, repeat);
6128
        }
6129
        // given that repeat(String, int) is quite optimized, better to rely on it than try and splice this into it
6130
        final String result = repeat(str + separator, repeat);
6131 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return removeEnd(result, separator);
6132
    }
6133
6134
    /**
6135
     * <p>Returns padding using the specified delimiter repeated
6136
     * to a given length.</p>
6137
     *
6138
     * <pre>
6139
     * StringUtils.repeat('e', 0)  = ""
6140
     * StringUtils.repeat('e', 3)  = "eee"
6141
     * StringUtils.repeat('e', -2) = ""
6142
     * </pre>
6143
     *
6144
     * <p>Note: this method doesn't not support padding with
6145
     * <a href="http://www.unicode.org/glossary/#supplementary_character">Unicode Supplementary Characters</a>
6146
     * as they require a pair of {@code char}s to be represented.
6147
     * If you are needing to support full I18N of your applications
6148
     * consider using {@link #repeat(String, int)} instead.
6149
     * </p>
6150
     *
6151
     * @param ch  character to repeat
6152
     * @param repeat  number of times to repeat char, negative treated as zero
6153
     * @return String with repeated character
6154
     * @see #repeat(String, int)
6155
     */
6156
    public static String repeat(final char ch, final int repeat) {
6157 2 1. repeat : changed conditional boundary → SURVIVED
2. repeat : negated conditional → KILLED
        if (repeat <= 0) {
6158 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
6159
        }
6160
        final char[] buf = new char[repeat];
6161 4 1. repeat : changed conditional boundary → KILLED
2. repeat : Changed increment from -1 to 1 → KILLED
3. repeat : Replaced integer subtraction with addition → KILLED
4. repeat : negated conditional → KILLED
        for (int i = repeat - 1; i >= 0; i--) {
6162
            buf[i] = ch;
6163
        }
6164 1 1. repeat : mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(buf);
6165
    }
6166
6167
    /**
6168
     * <p>Right pad a String with spaces (' ').</p>
6169
     *
6170
     * <p>The String is padded to the size of {@code size}.</p>
6171
     *
6172
     * <pre>
6173
     * StringUtils.rightPad(null, *)   = null
6174
     * StringUtils.rightPad("", 3)     = "   "
6175
     * StringUtils.rightPad("bat", 3)  = "bat"
6176
     * StringUtils.rightPad("bat", 5)  = "bat  "
6177
     * StringUtils.rightPad("bat", 1)  = "bat"
6178
     * StringUtils.rightPad("bat", -1) = "bat"
6179
     * </pre>
6180
     *
6181
     * @param str  the String to pad out, may be null
6182
     * @param size  the size to pad to
6183
     * @return right padded String or original String if no padding is necessary,
6184
     *  {@code null} if null String input
6185
     */
6186
    public static String rightPad(final String str, final int size) {
6187 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return rightPad(str, size, ' ');
6188
    }
6189
6190
    /**
6191
     * <p>Right pad a String with a specified character.</p>
6192
     *
6193
     * <p>The String is padded to the size of {@code size}.</p>
6194
     *
6195
     * <pre>
6196
     * StringUtils.rightPad(null, *, *)     = null
6197
     * StringUtils.rightPad("", 3, 'z')     = "zzz"
6198
     * StringUtils.rightPad("bat", 3, 'z')  = "bat"
6199
     * StringUtils.rightPad("bat", 5, 'z')  = "batzz"
6200
     * StringUtils.rightPad("bat", 1, 'z')  = "bat"
6201
     * StringUtils.rightPad("bat", -1, 'z') = "bat"
6202
     * </pre>
6203
     *
6204
     * @param str  the String to pad out, may be null
6205
     * @param size  the size to pad to
6206
     * @param padChar  the character to pad with
6207
     * @return right padded String or original String if no padding is necessary,
6208
     *  {@code null} if null String input
6209
     * @since 2.0
6210
     */
6211
    public static String rightPad(final String str, final int size, final char padChar) {
6212 1 1. rightPad : negated conditional → KILLED
        if (str == null) {
6213 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6214
        }
6215 1 1. rightPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - str.length();
6216 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads <= 0) {
6217 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6218
        }
6219 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads > PAD_LIMIT) {
6220 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return rightPad(str, size, String.valueOf(padChar));
6221
        }
6222 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.concat(repeat(padChar, pads));
6223
    }
6224
6225
    /**
6226
     * <p>Right pad a String with a specified String.</p>
6227
     *
6228
     * <p>The String is padded to the size of {@code size}.</p>
6229
     *
6230
     * <pre>
6231
     * StringUtils.rightPad(null, *, *)      = null
6232
     * StringUtils.rightPad("", 3, "z")      = "zzz"
6233
     * StringUtils.rightPad("bat", 3, "yz")  = "bat"
6234
     * StringUtils.rightPad("bat", 5, "yz")  = "batyz"
6235
     * StringUtils.rightPad("bat", 8, "yz")  = "batyzyzy"
6236
     * StringUtils.rightPad("bat", 1, "yz")  = "bat"
6237
     * StringUtils.rightPad("bat", -1, "yz") = "bat"
6238
     * StringUtils.rightPad("bat", 5, null)  = "bat  "
6239
     * StringUtils.rightPad("bat", 5, "")    = "bat  "
6240
     * </pre>
6241
     *
6242
     * @param str  the String to pad out, may be null
6243
     * @param size  the size to pad to
6244
     * @param padStr  the String to pad with, null or empty treated as single space
6245
     * @return right padded String or original String if no padding is necessary,
6246
     *  {@code null} if null String input
6247
     */
6248
    public static String rightPad(final String str, final int size, String padStr) {
6249 1 1. rightPad : negated conditional → KILLED
        if (str == null) {
6250 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6251
        }
6252 1 1. rightPad : negated conditional → KILLED
        if (isEmpty(padStr)) {
6253
            padStr = SPACE;
6254
        }
6255
        final int padLen = padStr.length();
6256
        final int strLen = str.length();
6257 1 1. rightPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6258 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        if (pads <= 0) {
6259 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6260
        }
6261 3 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
3. rightPad : negated conditional → KILLED
        if (padLen == 1 && pads <= PAD_LIMIT) {
6262 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return rightPad(str, size, padStr.charAt(0));
6263
        }
6264
6265 1 1. rightPad : negated conditional → KILLED
        if (pads == padLen) {
6266 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(padStr);
6267 2 1. rightPad : changed conditional boundary → SURVIVED
2. rightPad : negated conditional → KILLED
        } else if (pads < padLen) {
6268 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(padStr.substring(0, pads));
6269
        } else {
6270
            final char[] padding = new char[pads];
6271
            final char[] padChars = padStr.toCharArray();
6272 3 1. rightPad : changed conditional boundary → KILLED
2. rightPad : Changed increment from 1 to -1 → KILLED
3. rightPad : negated conditional → KILLED
            for (int i = 0; i < pads; i++) {
6273 1 1. rightPad : Replaced integer modulus with multiplication → KILLED
                padding[i] = padChars[i % padLen];
6274
            }
6275 1 1. rightPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.concat(new String(padding));
6276
        }
6277
    }
6278
6279
    /**
6280
     * <p>Left pad a String with spaces (' ').</p>
6281
     *
6282
     * <p>The String is padded to the size of {@code size}.</p>
6283
     *
6284
     * <pre>
6285
     * StringUtils.leftPad(null, *)   = null
6286
     * StringUtils.leftPad("", 3)     = "   "
6287
     * StringUtils.leftPad("bat", 3)  = "bat"
6288
     * StringUtils.leftPad("bat", 5)  = "  bat"
6289
     * StringUtils.leftPad("bat", 1)  = "bat"
6290
     * StringUtils.leftPad("bat", -1) = "bat"
6291
     * </pre>
6292
     *
6293
     * @param str  the String to pad out, may be null
6294
     * @param size  the size to pad to
6295
     * @return left padded String or original String if no padding is necessary,
6296
     *  {@code null} if null String input
6297
     */
6298
    public static String leftPad(final String str, final int size) {
6299 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return leftPad(str, size, ' ');
6300
    }
6301
6302
    /**
6303
     * <p>Left pad a String with a specified character.</p>
6304
     *
6305
     * <p>Pad to a size of {@code size}.</p>
6306
     *
6307
     * <pre>
6308
     * StringUtils.leftPad(null, *, *)     = null
6309
     * StringUtils.leftPad("", 3, 'z')     = "zzz"
6310
     * StringUtils.leftPad("bat", 3, 'z')  = "bat"
6311
     * StringUtils.leftPad("bat", 5, 'z')  = "zzbat"
6312
     * StringUtils.leftPad("bat", 1, 'z')  = "bat"
6313
     * StringUtils.leftPad("bat", -1, 'z') = "bat"
6314
     * </pre>
6315
     *
6316
     * @param str  the String to pad out, may be null
6317
     * @param size  the size to pad to
6318
     * @param padChar  the character to pad with
6319
     * @return left padded String or original String if no padding is necessary,
6320
     *  {@code null} if null String input
6321
     * @since 2.0
6322
     */
6323
    public static String leftPad(final String str, final int size, final char padChar) {
6324 1 1. leftPad : negated conditional → KILLED
        if (str == null) {
6325 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6326
        }
6327 1 1. leftPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - str.length();
6328 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads <= 0) {
6329 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6330
        }
6331 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads > PAD_LIMIT) {
6332 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return leftPad(str, size, String.valueOf(padChar));
6333
        }
6334 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return repeat(padChar, pads).concat(str);
6335
    }
6336
6337
    /**
6338
     * <p>Left pad a String with a specified String.</p>
6339
     *
6340
     * <p>Pad to a size of {@code size}.</p>
6341
     *
6342
     * <pre>
6343
     * StringUtils.leftPad(null, *, *)      = null
6344
     * StringUtils.leftPad("", 3, "z")      = "zzz"
6345
     * StringUtils.leftPad("bat", 3, "yz")  = "bat"
6346
     * StringUtils.leftPad("bat", 5, "yz")  = "yzbat"
6347
     * StringUtils.leftPad("bat", 8, "yz")  = "yzyzybat"
6348
     * StringUtils.leftPad("bat", 1, "yz")  = "bat"
6349
     * StringUtils.leftPad("bat", -1, "yz") = "bat"
6350
     * StringUtils.leftPad("bat", 5, null)  = "  bat"
6351
     * StringUtils.leftPad("bat", 5, "")    = "  bat"
6352
     * </pre>
6353
     *
6354
     * @param str  the String to pad out, may be null
6355
     * @param size  the size to pad to
6356
     * @param padStr  the String to pad with, null or empty treated as single space
6357
     * @return left padded String or original String if no padding is necessary,
6358
     *  {@code null} if null String input
6359
     */
6360
    public static String leftPad(final String str, final int size, String padStr) {
6361 1 1. leftPad : negated conditional → KILLED
        if (str == null) {
6362 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6363
        }
6364 1 1. leftPad : negated conditional → KILLED
        if (isEmpty(padStr)) {
6365
            padStr = SPACE;
6366
        }
6367
        final int padLen = padStr.length();
6368
        final int strLen = str.length();
6369 1 1. leftPad : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6370 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        if (pads <= 0) {
6371 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str; // returns original String when possible
6372
        }
6373 3 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
3. leftPad : negated conditional → KILLED
        if (padLen == 1 && pads <= PAD_LIMIT) {
6374 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return leftPad(str, size, padStr.charAt(0));
6375
        }
6376
6377 1 1. leftPad : negated conditional → KILLED
        if (pads == padLen) {
6378 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return padStr.concat(str);
6379 2 1. leftPad : changed conditional boundary → SURVIVED
2. leftPad : negated conditional → KILLED
        } else if (pads < padLen) {
6380 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return padStr.substring(0, pads).concat(str);
6381
        } else {
6382
            final char[] padding = new char[pads];
6383
            final char[] padChars = padStr.toCharArray();
6384 3 1. leftPad : changed conditional boundary → KILLED
2. leftPad : Changed increment from 1 to -1 → KILLED
3. leftPad : negated conditional → KILLED
            for (int i = 0; i < pads; i++) {
6385 1 1. leftPad : Replaced integer modulus with multiplication → KILLED
                padding[i] = padChars[i % padLen];
6386
            }
6387 1 1. leftPad : mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return new String(padding).concat(str);
6388
        }
6389
    }
6390
6391
    /**
6392
     * Gets a CharSequence length or {@code 0} if the CharSequence is
6393
     * {@code null}.
6394
     *
6395
     * @param cs
6396
     *            a CharSequence or {@code null}
6397
     * @return CharSequence length or {@code 0} if the CharSequence is
6398
     *         {@code null}.
6399
     * @since 2.4
6400
     * @since 3.0 Changed signature from length(String) to length(CharSequence)
6401
     */
6402
    public static int length(final CharSequence cs) {
6403 2 1. length : negated conditional → KILLED
2. length : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return cs == null ? 0 : cs.length();
6404
    }
6405
6406
    // Centering
6407
    //-----------------------------------------------------------------------
6408
    /**
6409
     * <p>Centers a String in a larger String of size {@code size}
6410
     * using the space character (' ').</p>
6411
     *
6412
     * <p>If the size is less than the String length, the String is returned.
6413
     * A {@code null} String returns {@code null}.
6414
     * A negative size is treated as zero.</p>
6415
     *
6416
     * <p>Equivalent to {@code center(str, size, " ")}.</p>
6417
     *
6418
     * <pre>
6419
     * StringUtils.center(null, *)   = null
6420
     * StringUtils.center("", 4)     = "    "
6421
     * StringUtils.center("ab", -1)  = "ab"
6422
     * StringUtils.center("ab", 4)   = " ab "
6423
     * StringUtils.center("abcd", 2) = "abcd"
6424
     * StringUtils.center("a", 4)    = " a  "
6425
     * </pre>
6426
     *
6427
     * @param str  the String to center, may be null
6428
     * @param size  the int size of new String, negative treated as zero
6429
     * @return centered String, {@code null} if null String input
6430
     */
6431
    public static String center(final String str, final int size) {
6432 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return center(str, size, ' ');
6433
    }
6434
6435
    /**
6436
     * <p>Centers a String in a larger String of size {@code size}.
6437
     * Uses a supplied character as the value to pad the String with.</p>
6438
     *
6439
     * <p>If the size is less than the String length, the String is returned.
6440
     * A {@code null} String returns {@code null}.
6441
     * A negative size is treated as zero.</p>
6442
     *
6443
     * <pre>
6444
     * StringUtils.center(null, *, *)     = null
6445
     * StringUtils.center("", 4, ' ')     = "    "
6446
     * StringUtils.center("ab", -1, ' ')  = "ab"
6447
     * StringUtils.center("ab", 4, ' ')   = " ab "
6448
     * StringUtils.center("abcd", 2, ' ') = "abcd"
6449
     * StringUtils.center("a", 4, ' ')    = " a  "
6450
     * StringUtils.center("a", 4, 'y')    = "yayy"
6451
     * </pre>
6452
     *
6453
     * @param str  the String to center, may be null
6454
     * @param size  the int size of new String, negative treated as zero
6455
     * @param padChar  the character to pad the new String with
6456
     * @return centered String, {@code null} if null String input
6457
     * @since 2.0
6458
     */
6459
    public static String center(String str, final int size, final char padChar) {
6460 3 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
3. center : negated conditional → KILLED
        if (str == null || size <= 0) {
6461 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6462
        }
6463
        final int strLen = str.length();
6464 1 1. center : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6465 2 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
        if (pads <= 0) {
6466 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6467
        }
6468 2 1. center : Replaced integer division with multiplication → KILLED
2. center : Replaced integer addition with subtraction → KILLED
        str = leftPad(str, strLen + pads / 2, padChar);
6469
        str = rightPad(str, size, padChar);
6470 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
6471
    }
6472
6473
    /**
6474
     * <p>Centers a String in a larger String of size {@code size}.
6475
     * Uses a supplied String as the value to pad the String with.</p>
6476
     *
6477
     * <p>If the size is less than the String length, the String is returned.
6478
     * A {@code null} String returns {@code null}.
6479
     * A negative size is treated as zero.</p>
6480
     *
6481
     * <pre>
6482
     * StringUtils.center(null, *, *)     = null
6483
     * StringUtils.center("", 4, " ")     = "    "
6484
     * StringUtils.center("ab", -1, " ")  = "ab"
6485
     * StringUtils.center("ab", 4, " ")   = " ab "
6486
     * StringUtils.center("abcd", 2, " ") = "abcd"
6487
     * StringUtils.center("a", 4, " ")    = " a  "
6488
     * StringUtils.center("a", 4, "yz")   = "yayz"
6489
     * StringUtils.center("abc", 7, null) = "  abc  "
6490
     * StringUtils.center("abc", 7, "")   = "  abc  "
6491
     * </pre>
6492
     *
6493
     * @param str  the String to center, may be null
6494
     * @param size  the int size of new String, negative treated as zero
6495
     * @param padStr  the String to pad the new String with, must not be null or empty
6496
     * @return centered String, {@code null} if null String input
6497
     * @throws IllegalArgumentException if padStr is {@code null} or empty
6498
     */
6499
    public static String center(String str, final int size, String padStr) {
6500 3 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
3. center : negated conditional → KILLED
        if (str == null || size <= 0) {
6501 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6502
        }
6503 1 1. center : negated conditional → KILLED
        if (isEmpty(padStr)) {
6504
            padStr = SPACE;
6505
        }
6506
        final int strLen = str.length();
6507 1 1. center : Replaced integer subtraction with addition → KILLED
        final int pads = size - strLen;
6508 2 1. center : changed conditional boundary → SURVIVED
2. center : negated conditional → KILLED
        if (pads <= 0) {
6509 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6510
        }
6511 2 1. center : Replaced integer division with multiplication → KILLED
2. center : Replaced integer addition with subtraction → KILLED
        str = leftPad(str, strLen + pads / 2, padStr);
6512
        str = rightPad(str, size, padStr);
6513 1 1. center : mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
6514
    }
6515
6516
    // Case conversion
6517
    //-----------------------------------------------------------------------
6518
    /**
6519
     * <p>Converts a String to upper case as per {@link String#toUpperCase()}.</p>
6520
     *
6521
     * <p>A {@code null} input String returns {@code null}.</p>
6522
     *
6523
     * <pre>
6524
     * StringUtils.upperCase(null)  = null
6525
     * StringUtils.upperCase("")    = ""
6526
     * StringUtils.upperCase("aBc") = "ABC"
6527
     * </pre>
6528
     *
6529
     * <p><strong>Note:</strong> As described in the documentation for {@link String#toUpperCase()},
6530
     * the result of this method is affected by the current locale.
6531
     * For platform-independent case transformations, the method {@link #lowerCase(String, Locale)}
6532
     * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
6533
     *
6534
     * @param str  the String to upper case, may be null
6535
     * @return the upper cased String, {@code null} if null String input
6536
     */
6537
    public static String upperCase(final String str) {
6538 1 1. upperCase : negated conditional → KILLED
        if (str == null) {
6539 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6540
        }
6541 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toUpperCase();
6542
    }
6543
6544
    /**
6545
     * <p>Converts a String to upper case as per {@link String#toUpperCase(Locale)}.</p>
6546
     *
6547
     * <p>A {@code null} input String returns {@code null}.</p>
6548
     *
6549
     * <pre>
6550
     * StringUtils.upperCase(null, Locale.ENGLISH)  = null
6551
     * StringUtils.upperCase("", Locale.ENGLISH)    = ""
6552
     * StringUtils.upperCase("aBc", Locale.ENGLISH) = "ABC"
6553
     * </pre>
6554
     *
6555
     * @param str  the String to upper case, may be null
6556
     * @param locale  the locale that defines the case transformation rules, must not be null
6557
     * @return the upper cased String, {@code null} if null String input
6558
     * @since 2.5
6559
     */
6560
    public static String upperCase(final String str, final Locale locale) {
6561 1 1. upperCase : negated conditional → KILLED
        if (str == null) {
6562 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6563
        }
6564 1 1. upperCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toUpperCase(locale);
6565
    }
6566
6567
    /**
6568
     * <p>Converts a String to lower case as per {@link String#toLowerCase()}.</p>
6569
     *
6570
     * <p>A {@code null} input String returns {@code null}.</p>
6571
     *
6572
     * <pre>
6573
     * StringUtils.lowerCase(null)  = null
6574
     * StringUtils.lowerCase("")    = ""
6575
     * StringUtils.lowerCase("aBc") = "abc"
6576
     * </pre>
6577
     *
6578
     * <p><strong>Note:</strong> As described in the documentation for {@link String#toLowerCase()},
6579
     * the result of this method is affected by the current locale.
6580
     * For platform-independent case transformations, the method {@link #lowerCase(String, Locale)}
6581
     * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
6582
     *
6583
     * @param str  the String to lower case, may be null
6584
     * @return the lower cased String, {@code null} if null String input
6585
     */
6586
    public static String lowerCase(final String str) {
6587 1 1. lowerCase : negated conditional → KILLED
        if (str == null) {
6588 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6589
        }
6590 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toLowerCase();
6591
    }
6592
6593
    /**
6594
     * <p>Converts a String to lower case as per {@link String#toLowerCase(Locale)}.</p>
6595
     *
6596
     * <p>A {@code null} input String returns {@code null}.</p>
6597
     *
6598
     * <pre>
6599
     * StringUtils.lowerCase(null, Locale.ENGLISH)  = null
6600
     * StringUtils.lowerCase("", Locale.ENGLISH)    = ""
6601
     * StringUtils.lowerCase("aBc", Locale.ENGLISH) = "abc"
6602
     * </pre>
6603
     *
6604
     * @param str  the String to lower case, may be null
6605
     * @param locale  the locale that defines the case transformation rules, must not be null
6606
     * @return the lower cased String, {@code null} if null String input
6607
     * @since 2.5
6608
     */
6609
    public static String lowerCase(final String str, final Locale locale) {
6610 1 1. lowerCase : negated conditional → KILLED
        if (str == null) {
6611 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
6612
        }
6613 1 1. lowerCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str.toLowerCase(locale);
6614
    }
6615
6616
    /**
6617
     * <p>Capitalizes a String changing the first character to title case as
6618
     * per {@link Character#toTitleCase(int)}. No other characters are changed.</p>
6619
     *
6620
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#capitalize(String)}.
6621
     * A {@code null} input String returns {@code null}.</p>
6622
     *
6623
     * <pre>
6624
     * StringUtils.capitalize(null)  = null
6625
     * StringUtils.capitalize("")    = ""
6626
     * StringUtils.capitalize("cat") = "Cat"
6627
     * StringUtils.capitalize("cAt") = "CAt"
6628
     * StringUtils.capitalize("'cat'") = "'cat'"
6629
     * </pre>
6630
     *
6631
     * @param str the String to capitalize, may be null
6632
     * @return the capitalized String, {@code null} if null String input
6633
     * @see org.apache.commons.lang3.text.WordUtils#capitalize(String)
6634
     * @see #uncapitalize(String)
6635
     * @since 2.0
6636
     */
6637
    public static String capitalize(final String str) {
6638
        int strLen;
6639 2 1. capitalize : negated conditional → KILLED
2. capitalize : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
6640 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6641
        }
6642
6643
        final int firstCodepoint = str.codePointAt(0);
6644
        final int newCodePoint = Character.toTitleCase(firstCodepoint);
6645 1 1. capitalize : negated conditional → KILLED
        if (firstCodepoint == newCodePoint) {
6646
            // already capitalized
6647 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6648
        }
6649
6650
        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6651
        int outOffset = 0;
6652 1 1. capitalize : Changed increment from 1 to -1 → KILLED
        newCodePoints[outOffset++] = newCodePoint; // copy the first codepoint
6653 2 1. capitalize : changed conditional boundary → KILLED
2. capitalize : negated conditional → KILLED
        for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
6654
            final int codepoint = str.codePointAt(inOffset);
6655 1 1. capitalize : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = codepoint; // copy the remaining ones
6656 1 1. capitalize : Replaced integer addition with subtraction → KILLED
            inOffset += Character.charCount(codepoint);
6657
         }
6658 1 1. capitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6659
    }
6660
6661
    /**
6662
     * <p>Uncapitalizes a String, changing the first character to lower case as
6663
     * per {@link Character#toLowerCase(int)}. No other characters are changed.</p>
6664
     *
6665
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#uncapitalize(String)}.
6666
     * A {@code null} input String returns {@code null}.</p>
6667
     *
6668
     * <pre>
6669
     * StringUtils.uncapitalize(null)  = null
6670
     * StringUtils.uncapitalize("")    = ""
6671
     * StringUtils.uncapitalize("cat") = "cat"
6672
     * StringUtils.uncapitalize("Cat") = "cat"
6673
     * StringUtils.uncapitalize("CAT") = "cAT"
6674
     * </pre>
6675
     *
6676
     * @param str the String to uncapitalize, may be null
6677
     * @return the uncapitalized String, {@code null} if null String input
6678
     * @see org.apache.commons.lang3.text.WordUtils#uncapitalize(String)
6679
     * @see #capitalize(String)
6680
     * @since 2.0
6681
     */
6682
    public static String uncapitalize(final String str) {
6683
        int strLen;
6684 2 1. uncapitalize : negated conditional → KILLED
2. uncapitalize : negated conditional → KILLED
        if (str == null || (strLen = str.length()) == 0) {
6685 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6686
        }
6687
6688
        final int firstCodepoint = str.codePointAt(0);
6689
        final int newCodePoint = Character.toLowerCase(firstCodepoint);
6690 1 1. uncapitalize : negated conditional → KILLED
        if (firstCodepoint == newCodePoint) {
6691
            // already capitalized
6692 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6693
        }
6694
6695
        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6696
        int outOffset = 0;
6697 1 1. uncapitalize : Changed increment from 1 to -1 → KILLED
        newCodePoints[outOffset++] = newCodePoint; // copy the first codepoint
6698 2 1. uncapitalize : changed conditional boundary → KILLED
2. uncapitalize : negated conditional → KILLED
        for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
6699
            final int codepoint = str.codePointAt(inOffset);
6700 1 1. uncapitalize : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = codepoint; // copy the remaining ones
6701 1 1. uncapitalize : Replaced integer addition with subtraction → KILLED
            inOffset += Character.charCount(codepoint);
6702
         }
6703 1 1. uncapitalize : mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6704
    }
6705
6706
    /**
6707
     * <p>Swaps the case of a String changing upper and title case to
6708
     * lower case, and lower case to upper case.</p>
6709
     *
6710
     * <ul>
6711
     *  <li>Upper case character converts to Lower case</li>
6712
     *  <li>Title case character converts to Lower case</li>
6713
     *  <li>Lower case character converts to Upper case</li>
6714
     * </ul>
6715
     *
6716
     * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#swapCase(String)}.
6717
     * A {@code null} input String returns {@code null}.</p>
6718
     *
6719
     * <pre>
6720
     * StringUtils.swapCase(null)                 = null
6721
     * StringUtils.swapCase("")                   = ""
6722
     * StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
6723
     * </pre>
6724
     *
6725
     * <p>NOTE: This method changed in Lang version 2.0.
6726
     * It no longer performs a word based algorithm.
6727
     * If you only use ASCII, you will notice no change.
6728
     * That functionality is available in org.apache.commons.lang3.text.WordUtils.</p>
6729
     *
6730
     * @param str  the String to swap case, may be null
6731
     * @return the changed String, {@code null} if null String input
6732
     */
6733
    public static String swapCase(final String str) {
6734 1 1. swapCase : negated conditional → KILLED
        if (StringUtils.isEmpty(str)) {
6735 1 1. swapCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
6736
        }
6737
6738
        final int strLen = str.length();
6739
        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
6740
        int outOffset = 0;
6741 2 1. swapCase : changed conditional boundary → KILLED
2. swapCase : negated conditional → KILLED
        for (int i = 0; i < strLen; ) {
6742
            final int oldCodepoint = str.codePointAt(i);
6743
            final int newCodePoint;
6744 1 1. swapCase : negated conditional → KILLED
            if (Character.isUpperCase(oldCodepoint)) {
6745
                newCodePoint = Character.toLowerCase(oldCodepoint);
6746 1 1. swapCase : negated conditional → KILLED
            } else if (Character.isTitleCase(oldCodepoint)) {
6747
                newCodePoint = Character.toLowerCase(oldCodepoint);
6748 1 1. swapCase : negated conditional → KILLED
            } else if (Character.isLowerCase(oldCodepoint)) {
6749
                newCodePoint = Character.toUpperCase(oldCodepoint);
6750
            } else {
6751
                newCodePoint = oldCodepoint;
6752
            }
6753 1 1. swapCase : Changed increment from 1 to -1 → KILLED
            newCodePoints[outOffset++] = newCodePoint;
6754 1 1. swapCase : Replaced integer addition with subtraction → KILLED
            i += Character.charCount(newCodePoint);
6755
         }
6756 1 1. swapCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newCodePoints, 0, outOffset);
6757
    }
6758
6759
    // Count matches
6760
    //-----------------------------------------------------------------------
6761
    /**
6762
     * <p>Counts how many times the substring appears in the larger string.</p>
6763
     *
6764
     * <p>A {@code null} or empty ("") String input returns {@code 0}.</p>
6765
     *
6766
     * <pre>
6767
     * StringUtils.countMatches(null, *)       = 0
6768
     * StringUtils.countMatches("", *)         = 0
6769
     * StringUtils.countMatches("abba", null)  = 0
6770
     * StringUtils.countMatches("abba", "")    = 0
6771
     * StringUtils.countMatches("abba", "a")   = 2
6772
     * StringUtils.countMatches("abba", "ab")  = 1
6773
     * StringUtils.countMatches("abba", "xxx") = 0
6774
     * </pre>
6775
     *
6776
     * @param str  the CharSequence to check, may be null
6777
     * @param sub  the substring to count, may be null
6778
     * @return the number of occurrences, 0 if either CharSequence is {@code null}
6779
     * @since 3.0 Changed signature from countMatches(String, String) to countMatches(CharSequence, CharSequence)
6780
     */
6781
    public static int countMatches(final CharSequence str, final CharSequence sub) {
6782 2 1. countMatches : negated conditional → KILLED
2. countMatches : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(sub)) {
6783 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
6784
        }
6785
        int count = 0;
6786
        int idx = 0;
6787 1 1. countMatches : negated conditional → KILLED
        while ((idx = CharSequenceUtils.indexOf(str, sub, idx)) != INDEX_NOT_FOUND) {
6788 1 1. countMatches : Changed increment from 1 to -1 → KILLED
            count++;
6789 1 1. countMatches : Replaced integer addition with subtraction → TIMED_OUT
            idx += sub.length();
6790
        }
6791 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return count;
6792
    }
6793
6794
    /**
6795
     * <p>Counts how many times the char appears in the given string.</p>
6796
     *
6797
     * <p>A {@code null} or empty ("") String input returns {@code 0}.</p>
6798
     *
6799
     * <pre>
6800
     * StringUtils.countMatches(null, *)       = 0
6801
     * StringUtils.countMatches("", *)         = 0
6802
     * StringUtils.countMatches("abba", 0)  = 0
6803
     * StringUtils.countMatches("abba", 'a')   = 2
6804
     * StringUtils.countMatches("abba", 'b')  = 2
6805
     * StringUtils.countMatches("abba", 'x') = 0
6806
     * </pre>
6807
     *
6808
     * @param str  the CharSequence to check, may be null
6809
     * @param ch  the char to count
6810
     * @return the number of occurrences, 0 if the CharSequence is {@code null}
6811
     * @since 3.4
6812
     */
6813
    public static int countMatches(final CharSequence str, final char ch) {
6814 1 1. countMatches : negated conditional → KILLED
        if (isEmpty(str)) {
6815 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
6816
        }
6817
        int count = 0;
6818
        // We could also call str.toCharArray() for faster look ups but that would generate more garbage.
6819 3 1. countMatches : changed conditional boundary → KILLED
2. countMatches : Changed increment from 1 to -1 → KILLED
3. countMatches : negated conditional → KILLED
        for (int i = 0; i < str.length(); i++) {
6820 1 1. countMatches : negated conditional → KILLED
            if (ch == str.charAt(i)) {
6821 1 1. countMatches : Changed increment from 1 to -1 → KILLED
                count++;
6822
            }
6823
        }
6824 1 1. countMatches : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return count;
6825
    }
6826
6827
    // Character Tests
6828
    //-----------------------------------------------------------------------
6829
    /**
6830
     * <p>Checks if the CharSequence contains only Unicode letters.</p>
6831
     *
6832
     * <p>{@code null} will return {@code false}.
6833
     * An empty CharSequence (length()=0) will return {@code false}.</p>
6834
     *
6835
     * <pre>
6836
     * StringUtils.isAlpha(null)   = false
6837
     * StringUtils.isAlpha("")     = false
6838
     * StringUtils.isAlpha("  ")   = false
6839
     * StringUtils.isAlpha("abc")  = true
6840
     * StringUtils.isAlpha("ab2c") = false
6841
     * StringUtils.isAlpha("ab-c") = false
6842
     * </pre>
6843
     *
6844
     * @param cs  the CharSequence to check, may be null
6845
     * @return {@code true} if only contains letters, and is non-null
6846
     * @since 3.0 Changed signature from isAlpha(String) to isAlpha(CharSequence)
6847
     * @since 3.0 Changed "" to return false and not true
6848
     */
6849
    public static boolean isAlpha(final CharSequence cs) {
6850 1 1. isAlpha : negated conditional → KILLED
        if (isEmpty(cs)) {
6851 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6852
        }
6853
        final int sz = cs.length();
6854 3 1. isAlpha : changed conditional boundary → KILLED
2. isAlpha : Changed increment from 1 to -1 → KILLED
3. isAlpha : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6855 1 1. isAlpha : negated conditional → KILLED
            if (Character.isLetter(cs.charAt(i)) == false) {
6856 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6857
            }
6858
        }
6859 1 1. isAlpha : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6860
    }
6861
6862
    /**
6863
     * <p>Checks if the CharSequence contains only Unicode letters and
6864
     * space (' ').</p>
6865
     *
6866
     * <p>{@code null} will return {@code false}
6867
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6868
     *
6869
     * <pre>
6870
     * StringUtils.isAlphaSpace(null)   = false
6871
     * StringUtils.isAlphaSpace("")     = true
6872
     * StringUtils.isAlphaSpace("  ")   = true
6873
     * StringUtils.isAlphaSpace("abc")  = true
6874
     * StringUtils.isAlphaSpace("ab c") = true
6875
     * StringUtils.isAlphaSpace("ab2c") = false
6876
     * StringUtils.isAlphaSpace("ab-c") = false
6877
     * </pre>
6878
     *
6879
     * @param cs  the CharSequence to check, may be null
6880
     * @return {@code true} if only contains letters and space,
6881
     *  and is non-null
6882
     * @since 3.0 Changed signature from isAlphaSpace(String) to isAlphaSpace(CharSequence)
6883
     */
6884
    public static boolean isAlphaSpace(final CharSequence cs) {
6885 1 1. isAlphaSpace : negated conditional → KILLED
        if (cs == null) {
6886 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6887
        }
6888
        final int sz = cs.length();
6889 3 1. isAlphaSpace : changed conditional boundary → KILLED
2. isAlphaSpace : Changed increment from 1 to -1 → KILLED
3. isAlphaSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6890 2 1. isAlphaSpace : negated conditional → KILLED
2. isAlphaSpace : negated conditional → KILLED
            if (Character.isLetter(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
6891 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6892
            }
6893
        }
6894 1 1. isAlphaSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6895
    }
6896
6897
    /**
6898
     * <p>Checks if the CharSequence contains only Unicode letters or digits.</p>
6899
     *
6900
     * <p>{@code null} will return {@code false}.
6901
     * An empty CharSequence (length()=0) will return {@code false}.</p>
6902
     *
6903
     * <pre>
6904
     * StringUtils.isAlphanumeric(null)   = false
6905
     * StringUtils.isAlphanumeric("")     = false
6906
     * StringUtils.isAlphanumeric("  ")   = false
6907
     * StringUtils.isAlphanumeric("abc")  = true
6908
     * StringUtils.isAlphanumeric("ab c") = false
6909
     * StringUtils.isAlphanumeric("ab2c") = true
6910
     * StringUtils.isAlphanumeric("ab-c") = false
6911
     * </pre>
6912
     *
6913
     * @param cs  the CharSequence to check, may be null
6914
     * @return {@code true} if only contains letters or digits,
6915
     *  and is non-null
6916
     * @since 3.0 Changed signature from isAlphanumeric(String) to isAlphanumeric(CharSequence)
6917
     * @since 3.0 Changed "" to return false and not true
6918
     */
6919
    public static boolean isAlphanumeric(final CharSequence cs) {
6920 1 1. isAlphanumeric : negated conditional → KILLED
        if (isEmpty(cs)) {
6921 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6922
        }
6923
        final int sz = cs.length();
6924 3 1. isAlphanumeric : changed conditional boundary → KILLED
2. isAlphanumeric : Changed increment from 1 to -1 → KILLED
3. isAlphanumeric : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6925 1 1. isAlphanumeric : negated conditional → KILLED
            if (Character.isLetterOrDigit(cs.charAt(i)) == false) {
6926 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6927
            }
6928
        }
6929 1 1. isAlphanumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6930
    }
6931
6932
    /**
6933
     * <p>Checks if the CharSequence contains only Unicode letters, digits
6934
     * or space ({@code ' '}).</p>
6935
     *
6936
     * <p>{@code null} will return {@code false}.
6937
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6938
     *
6939
     * <pre>
6940
     * StringUtils.isAlphanumericSpace(null)   = false
6941
     * StringUtils.isAlphanumericSpace("")     = true
6942
     * StringUtils.isAlphanumericSpace("  ")   = true
6943
     * StringUtils.isAlphanumericSpace("abc")  = true
6944
     * StringUtils.isAlphanumericSpace("ab c") = true
6945
     * StringUtils.isAlphanumericSpace("ab2c") = true
6946
     * StringUtils.isAlphanumericSpace("ab-c") = false
6947
     * </pre>
6948
     *
6949
     * @param cs  the CharSequence to check, may be null
6950
     * @return {@code true} if only contains letters, digits or space,
6951
     *  and is non-null
6952
     * @since 3.0 Changed signature from isAlphanumericSpace(String) to isAlphanumericSpace(CharSequence)
6953
     */
6954
    public static boolean isAlphanumericSpace(final CharSequence cs) {
6955 1 1. isAlphanumericSpace : negated conditional → KILLED
        if (cs == null) {
6956 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6957
        }
6958
        final int sz = cs.length();
6959 3 1. isAlphanumericSpace : changed conditional boundary → KILLED
2. isAlphanumericSpace : Changed increment from 1 to -1 → KILLED
3. isAlphanumericSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6960 2 1. isAlphanumericSpace : negated conditional → KILLED
2. isAlphanumericSpace : negated conditional → KILLED
            if (Character.isLetterOrDigit(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
6961 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
6962
            }
6963
        }
6964 1 1. isAlphanumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
6965
    }
6966
6967
    /**
6968
     * <p>Checks if the CharSequence contains only ASCII printable characters.</p>
6969
     *
6970
     * <p>{@code null} will return {@code false}.
6971
     * An empty CharSequence (length()=0) will return {@code true}.</p>
6972
     *
6973
     * <pre>
6974
     * StringUtils.isAsciiPrintable(null)     = false
6975
     * StringUtils.isAsciiPrintable("")       = true
6976
     * StringUtils.isAsciiPrintable(" ")      = true
6977
     * StringUtils.isAsciiPrintable("Ceki")   = true
6978
     * StringUtils.isAsciiPrintable("ab2c")   = true
6979
     * StringUtils.isAsciiPrintable("!ab-c~") = true
6980
     * StringUtils.isAsciiPrintable("\u0020") = true
6981
     * StringUtils.isAsciiPrintable("\u0021") = true
6982
     * StringUtils.isAsciiPrintable("\u007e") = true
6983
     * StringUtils.isAsciiPrintable("\u007f") = false
6984
     * StringUtils.isAsciiPrintable("Ceki G\u00fclc\u00fc") = false
6985
     * </pre>
6986
     *
6987
     * @param cs the CharSequence to check, may be null
6988
     * @return {@code true} if every character is in the range
6989
     *  32 thru 126
6990
     * @since 2.1
6991
     * @since 3.0 Changed signature from isAsciiPrintable(String) to isAsciiPrintable(CharSequence)
6992
     */
6993
    public static boolean isAsciiPrintable(final CharSequence cs) {
6994 1 1. isAsciiPrintable : negated conditional → KILLED
        if (cs == null) {
6995 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
6996
        }
6997
        final int sz = cs.length();
6998 3 1. isAsciiPrintable : changed conditional boundary → KILLED
2. isAsciiPrintable : Changed increment from 1 to -1 → KILLED
3. isAsciiPrintable : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
6999 1 1. isAsciiPrintable : negated conditional → KILLED
            if (CharUtils.isAsciiPrintable(cs.charAt(i)) == false) {
7000 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7001
            }
7002
        }
7003 1 1. isAsciiPrintable : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7004
    }
7005
7006
    /**
7007
     * <p>Checks if the CharSequence contains only Unicode digits.
7008
     * A decimal point is not a Unicode digit and returns false.</p>
7009
     *
7010
     * <p>{@code null} will return {@code false}.
7011
     * An empty CharSequence (length()=0) will return {@code false}.</p>
7012
     *
7013
     * <p>Note that the method does not allow for a leading sign, either positive or negative.
7014
     * Also, if a String passes the numeric test, it may still generate a NumberFormatException
7015
     * when parsed by Integer.parseInt or Long.parseLong, e.g. if the value is outside the range
7016
     * for int or long respectively.</p>
7017
     *
7018
     * <pre>
7019
     * StringUtils.isNumeric(null)   = false
7020
     * StringUtils.isNumeric("")     = false
7021
     * StringUtils.isNumeric("  ")   = false
7022
     * StringUtils.isNumeric("123")  = true
7023
     * StringUtils.isNumeric("\u0967\u0968\u0969")  = true
7024
     * StringUtils.isNumeric("12 3") = false
7025
     * StringUtils.isNumeric("ab2c") = false
7026
     * StringUtils.isNumeric("12-3") = false
7027
     * StringUtils.isNumeric("12.3") = false
7028
     * StringUtils.isNumeric("-123") = false
7029
     * StringUtils.isNumeric("+123") = false
7030
     * </pre>
7031
     *
7032
     * @param cs  the CharSequence to check, may be null
7033
     * @return {@code true} if only contains digits, and is non-null
7034
     * @since 3.0 Changed signature from isNumeric(String) to isNumeric(CharSequence)
7035
     * @since 3.0 Changed "" to return false and not true
7036
     */
7037
    public static boolean isNumeric(final CharSequence cs) {
7038 1 1. isNumeric : negated conditional → KILLED
        if (isEmpty(cs)) {
7039 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7040
        }
7041
        final int sz = cs.length();
7042 3 1. isNumeric : changed conditional boundary → KILLED
2. isNumeric : Changed increment from 1 to -1 → KILLED
3. isNumeric : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7043 1 1. isNumeric : negated conditional → KILLED
            if (!Character.isDigit(cs.charAt(i))) {
7044 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7045
            }
7046
        }
7047 1 1. isNumeric : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7048
    }
7049
7050
    /**
7051
     * <p>Checks if the CharSequence contains only Unicode digits or space
7052
     * ({@code ' '}).
7053
     * A decimal point is not a Unicode digit and returns false.</p>
7054
     *
7055
     * <p>{@code null} will return {@code false}.
7056
     * An empty CharSequence (length()=0) will return {@code true}.</p>
7057
     *
7058
     * <pre>
7059
     * StringUtils.isNumericSpace(null)   = false
7060
     * StringUtils.isNumericSpace("")     = true
7061
     * StringUtils.isNumericSpace("  ")   = true
7062
     * StringUtils.isNumericSpace("123")  = true
7063
     * StringUtils.isNumericSpace("12 3") = true
7064
     * StringUtils.isNumeric("\u0967\u0968\u0969")  = true
7065
     * StringUtils.isNumeric("\u0967\u0968 \u0969")  = true
7066
     * StringUtils.isNumericSpace("ab2c") = false
7067
     * StringUtils.isNumericSpace("12-3") = false
7068
     * StringUtils.isNumericSpace("12.3") = false
7069
     * </pre>
7070
     *
7071
     * @param cs  the CharSequence to check, may be null
7072
     * @return {@code true} if only contains digits or space,
7073
     *  and is non-null
7074
     * @since 3.0 Changed signature from isNumericSpace(String) to isNumericSpace(CharSequence)
7075
     */
7076
    public static boolean isNumericSpace(final CharSequence cs) {
7077 1 1. isNumericSpace : negated conditional → KILLED
        if (cs == null) {
7078 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7079
        }
7080
        final int sz = cs.length();
7081 3 1. isNumericSpace : changed conditional boundary → KILLED
2. isNumericSpace : Changed increment from 1 to -1 → KILLED
3. isNumericSpace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7082 2 1. isNumericSpace : negated conditional → KILLED
2. isNumericSpace : negated conditional → KILLED
            if (Character.isDigit(cs.charAt(i)) == false && cs.charAt(i) != ' ') {
7083 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7084
            }
7085
        }
7086 1 1. isNumericSpace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7087
    }
7088
7089
    /**
7090
     * <p>Checks if the CharSequence contains only whitespace.</p>
7091
     * 
7092
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
7093
     *
7094
     * <p>{@code null} will return {@code false}.
7095
     * An empty CharSequence (length()=0) will return {@code true}.</p>
7096
     *
7097
     * <pre>
7098
     * StringUtils.isWhitespace(null)   = false
7099
     * StringUtils.isWhitespace("")     = true
7100
     * StringUtils.isWhitespace("  ")   = true
7101
     * StringUtils.isWhitespace("abc")  = false
7102
     * StringUtils.isWhitespace("ab2c") = false
7103
     * StringUtils.isWhitespace("ab-c") = false
7104
     * </pre>
7105
     *
7106
     * @param cs  the CharSequence to check, may be null
7107
     * @return {@code true} if only contains whitespace, and is non-null
7108
     * @since 2.0
7109
     * @since 3.0 Changed signature from isWhitespace(String) to isWhitespace(CharSequence)
7110
     */
7111
    public static boolean isWhitespace(final CharSequence cs) {
7112 1 1. isWhitespace : negated conditional → KILLED
        if (cs == null) {
7113 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7114
        }
7115
        final int sz = cs.length();
7116 3 1. isWhitespace : changed conditional boundary → KILLED
2. isWhitespace : Changed increment from 1 to -1 → KILLED
3. isWhitespace : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7117 1 1. isWhitespace : negated conditional → KILLED
            if (Character.isWhitespace(cs.charAt(i)) == false) {
7118 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7119
            }
7120
        }
7121 1 1. isWhitespace : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7122
    }
7123
7124
    /**
7125
     * <p>Checks if the CharSequence contains only lowercase characters.</p>
7126
     *
7127
     * <p>{@code null} will return {@code false}.
7128
     * An empty CharSequence (length()=0) will return {@code false}.</p>
7129
     *
7130
     * <pre>
7131
     * StringUtils.isAllLowerCase(null)   = false
7132
     * StringUtils.isAllLowerCase("")     = false
7133
     * StringUtils.isAllLowerCase("  ")   = false
7134
     * StringUtils.isAllLowerCase("abc")  = true
7135
     * StringUtils.isAllLowerCase("abC")  = false
7136
     * StringUtils.isAllLowerCase("ab c") = false
7137
     * StringUtils.isAllLowerCase("ab1c") = false
7138
     * StringUtils.isAllLowerCase("ab/c") = false
7139
     * </pre>
7140
     *
7141
     * @param cs  the CharSequence to check, may be null
7142
     * @return {@code true} if only contains lowercase characters, and is non-null
7143
     * @since 2.5
7144
     * @since 3.0 Changed signature from isAllLowerCase(String) to isAllLowerCase(CharSequence)
7145
     */
7146
    public static boolean isAllLowerCase(final CharSequence cs) {
7147 2 1. isAllLowerCase : negated conditional → KILLED
2. isAllLowerCase : negated conditional → KILLED
        if (cs == null || isEmpty(cs)) {
7148 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7149
        }
7150
        final int sz = cs.length();
7151 3 1. isAllLowerCase : changed conditional boundary → KILLED
2. isAllLowerCase : Changed increment from 1 to -1 → KILLED
3. isAllLowerCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7152 1 1. isAllLowerCase : negated conditional → KILLED
            if (Character.isLowerCase(cs.charAt(i)) == false) {
7153 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7154
            }
7155
        }
7156 1 1. isAllLowerCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7157
    }
7158
7159
    /**
7160
     * <p>Checks if the CharSequence contains only uppercase characters.</p>
7161
     *
7162
     * <p>{@code null} will return {@code false}.
7163
     * An empty String (length()=0) will return {@code false}.</p>
7164
     *
7165
     * <pre>
7166
     * StringUtils.isAllUpperCase(null)   = false
7167
     * StringUtils.isAllUpperCase("")     = false
7168
     * StringUtils.isAllUpperCase("  ")   = false
7169
     * StringUtils.isAllUpperCase("ABC")  = true
7170
     * StringUtils.isAllUpperCase("aBC")  = false
7171
     * StringUtils.isAllUpperCase("A C")  = false
7172
     * StringUtils.isAllUpperCase("A1C")  = false
7173
     * StringUtils.isAllUpperCase("A/C")  = false
7174
     * </pre>
7175
     *
7176
     * @param cs the CharSequence to check, may be null
7177
     * @return {@code true} if only contains uppercase characters, and is non-null
7178
     * @since 2.5
7179
     * @since 3.0 Changed signature from isAllUpperCase(String) to isAllUpperCase(CharSequence)
7180
     */
7181
    public static boolean isAllUpperCase(final CharSequence cs) {
7182 2 1. isAllUpperCase : negated conditional → KILLED
2. isAllUpperCase : negated conditional → KILLED
        if (cs == null || isEmpty(cs)) {
7183 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
7184
        }
7185
        final int sz = cs.length();
7186 3 1. isAllUpperCase : changed conditional boundary → KILLED
2. isAllUpperCase : Changed increment from 1 to -1 → KILLED
3. isAllUpperCase : negated conditional → KILLED
        for (int i = 0; i < sz; i++) {
7187 1 1. isAllUpperCase : negated conditional → KILLED
            if (Character.isUpperCase(cs.charAt(i)) == false) {
7188 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return false;
7189
            }
7190
        }
7191 1 1. isAllUpperCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return true;
7192
    }
7193
7194
    // Defaults
7195
    //-----------------------------------------------------------------------
7196
    /**
7197
     * <p>Returns either the passed in String,
7198
     * or if the String is {@code null}, an empty String ("").</p>
7199
     *
7200
     * <pre>
7201
     * StringUtils.defaultString(null)  = ""
7202
     * StringUtils.defaultString("")    = ""
7203
     * StringUtils.defaultString("bat") = "bat"
7204
     * </pre>
7205
     *
7206
     * @see ObjectUtils#toString(Object)
7207
     * @see String#valueOf(Object)
7208
     * @param str  the String to check, may be null
7209
     * @return the passed in String, or the empty String if it
7210
     *  was {@code null}
7211
     */
7212
    public static String defaultString(final String str) {
7213 2 1. defaultString : negated conditional → KILLED
2. defaultString : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? EMPTY : str;
7214
    }
7215
7216
    /**
7217
     * <p>Returns either the passed in String, or if the String is
7218
     * {@code null}, the value of {@code defaultStr}.</p>
7219
     *
7220
     * <pre>
7221
     * StringUtils.defaultString(null, "NULL")  = "NULL"
7222
     * StringUtils.defaultString("", "NULL")    = ""
7223
     * StringUtils.defaultString("bat", "NULL") = "bat"
7224
     * </pre>
7225
     *
7226
     * @see ObjectUtils#toString(Object,String)
7227
     * @see String#valueOf(Object)
7228
     * @param str  the String to check, may be null
7229
     * @param defaultStr  the default String to return
7230
     *  if the input is {@code null}, may be null
7231
     * @return the passed in String, or the default if it was {@code null}
7232
     */
7233
    public static String defaultString(final String str, final String defaultStr) {
7234 2 1. defaultString : negated conditional → KILLED
2. defaultString : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str == null ? defaultStr : str;
7235
    }
7236
7237
    /**
7238
     * <p>Returns either the passed in CharSequence, or if the CharSequence is
7239
     * whitespace, empty ("") or {@code null}, the value of {@code defaultStr}.</p>
7240
     * 
7241
     * </p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
7242
     *
7243
     * <pre>
7244
     * StringUtils.defaultIfBlank(null, "NULL")  = "NULL"
7245
     * StringUtils.defaultIfBlank("", "NULL")    = "NULL"
7246
     * StringUtils.defaultIfBlank(" ", "NULL")   = "NULL"
7247
     * StringUtils.defaultIfBlank("bat", "NULL") = "bat"
7248
     * StringUtils.defaultIfBlank("", null)      = null
7249
     * </pre>
7250
     * @param <T> the specific kind of CharSequence
7251
     * @param str the CharSequence to check, may be null
7252
     * @param defaultStr  the default CharSequence to return
7253
     *  if the input is whitespace, empty ("") or {@code null}, may be null
7254
     * @return the passed in CharSequence, or the default
7255
     * @see StringUtils#defaultString(String, String)
7256
     */
7257
    public static <T extends CharSequence> T defaultIfBlank(final T str, final T defaultStr) {
7258 2 1. defaultIfBlank : negated conditional → KILLED
2. defaultIfBlank : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfBlank to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isBlank(str) ? defaultStr : str;
7259
    }
7260
7261
    /**
7262
     * <p>Returns either the passed in CharSequence, or if the CharSequence is
7263
     * empty or {@code null}, the value of {@code defaultStr}.</p>
7264
     *
7265
     * <pre>
7266
     * StringUtils.defaultIfEmpty(null, "NULL")  = "NULL"
7267
     * StringUtils.defaultIfEmpty("", "NULL")    = "NULL"
7268
     * StringUtils.defaultIfEmpty(" ", "NULL")   = " "
7269
     * StringUtils.defaultIfEmpty("bat", "NULL") = "bat"
7270
     * StringUtils.defaultIfEmpty("", null)      = null
7271
     * </pre>
7272
     * @param <T> the specific kind of CharSequence
7273
     * @param str  the CharSequence to check, may be null
7274
     * @param defaultStr  the default CharSequence to return
7275
     *  if the input is empty ("") or {@code null}, may be null
7276
     * @return the passed in CharSequence, or the default
7277
     * @see StringUtils#defaultString(String, String)
7278
     */
7279
    public static <T extends CharSequence> T defaultIfEmpty(final T str, final T defaultStr) {
7280 2 1. defaultIfEmpty : negated conditional → KILLED
2. defaultIfEmpty : mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return isEmpty(str) ? defaultStr : str;
7281
    }
7282
7283
    // Rotating (circular shift)
7284
    //-----------------------------------------------------------------------
7285
    /**
7286
     * <p>Rotate (circular shift) a String of {@code shift} characters.</p>
7287
     * <ul>
7288
     *  <li>If {@code shift > 0}, right circular shift (ex : ABCDEF =&gt; FABCDE)</li>
7289
     *  <li>If {@code shift < 0}, left circular shift (ex : ABCDEF =&gt; BCDEFA)</li>
7290
     * </ul>
7291
     *
7292
     * <pre>
7293
     * StringUtils.rotate(null, *)        = null
7294
     * StringUtils.rotate("", *)          = ""
7295
     * StringUtils.rotate("abcdefg", 0)   = "abcdefg"
7296
     * StringUtils.rotate("abcdefg", 2)   = "fgabcde"
7297
     * StringUtils.rotate("abcdefg", -2)  = "cdefgab"
7298
     * StringUtils.rotate("abcdefg", 7)   = "abcdefg"
7299
     * StringUtils.rotate("abcdefg", -7)  = "abcdefg"
7300
     * StringUtils.rotate("abcdefg", 9)   = "fgabcde"
7301
     * StringUtils.rotate("abcdefg", -9)  = "cdefgab"
7302
     * </pre>
7303
     *
7304
     * @param str  the String to rotate, may be null
7305
     * @param shift  number of time to shift (positive : right shift, negative : left shift)
7306
     * @return the rotated String,
7307
     *          or the original String if {@code shift == 0},
7308
     *          or {@code null} if null String input
7309
     * @since 3.5
7310
     */
7311
    public static String rotate(final String str, final int shift) {
7312 1 1. rotate : negated conditional → KILLED
        if (str == null) {
7313 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7314
        }
7315
7316
        final int strLen = str.length();
7317 4 1. rotate : Replaced integer modulus with multiplication → SURVIVED
2. rotate : negated conditional → KILLED
3. rotate : negated conditional → KILLED
4. rotate : negated conditional → KILLED
        if (shift == 0 || strLen == 0 || shift % strLen == 0) {
7318 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7319
        }
7320
7321
        final StringBuilder builder = new StringBuilder(strLen);
7322 2 1. rotate : removed negation → KILLED
2. rotate : Replaced integer modulus with multiplication → KILLED
        final int offset = - (shift % strLen);
7323
        builder.append(substring(str, offset));
7324
        builder.append(substring(str, 0, offset));
7325 1 1. rotate : mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
7326
    }
7327
7328
    // Reversing
7329
    //-----------------------------------------------------------------------
7330
    /**
7331
     * <p>Reverses a String as per {@link StringBuilder#reverse()}.</p>
7332
     *
7333
     * <p>A {@code null} String returns {@code null}.</p>
7334
     *
7335
     * <pre>
7336
     * StringUtils.reverse(null)  = null
7337
     * StringUtils.reverse("")    = ""
7338
     * StringUtils.reverse("bat") = "tab"
7339
     * </pre>
7340
     *
7341
     * @param str  the String to reverse, may be null
7342
     * @return the reversed String, {@code null} if null String input
7343
     */
7344
    public static String reverse(final String str) {
7345 1 1. reverse : negated conditional → KILLED
        if (str == null) {
7346 1 1. reverse : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7347
        }
7348 1 1. reverse : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new StringBuilder(str).reverse().toString();
7349
    }
7350
7351
    /**
7352
     * <p>Reverses a String that is delimited by a specific character.</p>
7353
     *
7354
     * <p>The Strings between the delimiters are not reversed.
7355
     * Thus java.lang.String becomes String.lang.java (if the delimiter
7356
     * is {@code '.'}).</p>
7357
     *
7358
     * <pre>
7359
     * StringUtils.reverseDelimited(null, *)      = null
7360
     * StringUtils.reverseDelimited("", *)        = ""
7361
     * StringUtils.reverseDelimited("a.b.c", 'x') = "a.b.c"
7362
     * StringUtils.reverseDelimited("a.b.c", ".") = "c.b.a"
7363
     * </pre>
7364
     *
7365
     * @param str  the String to reverse, may be null
7366
     * @param separatorChar  the separator character to use
7367
     * @return the reversed String, {@code null} if null String input
7368
     * @since 2.0
7369
     */
7370
    public static String reverseDelimited(final String str, final char separatorChar) {
7371 1 1. reverseDelimited : negated conditional → KILLED
        if (str == null) {
7372 1 1. reverseDelimited : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
7373
        }
7374
        // could implement manually, but simple way is to reuse other,
7375
        // probably slower, methods.
7376
        final String[] strs = split(str, separatorChar);
7377 1 1. reverseDelimited : removed call to org/apache/commons/lang3/ArrayUtils::reverse → KILLED
        ArrayUtils.reverse(strs);
7378 1 1. reverseDelimited : mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return join(strs, separatorChar);
7379
    }
7380
7381
    // Abbreviating
7382
    //-----------------------------------------------------------------------
7383
    /**
7384
     * <p>Abbreviates a String using ellipses. This will turn
7385
     * "Now is the time for all good men" into "Now is the time for..."</p>
7386
     *
7387
     * <p>Specifically:</p>
7388
     * <ul>
7389
     *   <li>If the number of characters in {@code str} is less than or equal to 
7390
     *       {@code maxWidth}, return {@code str}.</li>
7391
     *   <li>Else abbreviate it to {@code (substring(str, 0, max-3) + "...")}.</li>
7392
     *   <li>If {@code maxWidth} is less than {@code 4}, throw an
7393
     *       {@code IllegalArgumentException}.</li>
7394
     *   <li>In no case will it return a String of length greater than
7395
     *       {@code maxWidth}.</li>
7396
     * </ul>
7397
     *
7398
     * <pre>
7399
     * StringUtils.abbreviate(null, *)      = null
7400
     * StringUtils.abbreviate("", 4)        = ""
7401
     * StringUtils.abbreviate("abcdefg", 6) = "abc..."
7402
     * StringUtils.abbreviate("abcdefg", 7) = "abcdefg"
7403
     * StringUtils.abbreviate("abcdefg", 8) = "abcdefg"
7404
     * StringUtils.abbreviate("abcdefg", 4) = "a..."
7405
     * StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException
7406
     * </pre>
7407
     *
7408
     * @param str  the String to check, may be null
7409
     * @param maxWidth  maximum length of result String, must be at least 4
7410
     * @return abbreviated String, {@code null} if null String input
7411
     * @throws IllegalArgumentException if the width is too small
7412
     * @since 2.0
7413
     */
7414
    public static String abbreviate(final String str, final int maxWidth) {
7415
        final String defaultAbbrevMarker = "...";
7416 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, defaultAbbrevMarker, 0, maxWidth);
7417
    }
7418
7419
    /**
7420
     * <p>Abbreviates a String using ellipses. This will turn
7421
     * "Now is the time for all good men" into "...is the time for..."</p>
7422
     *
7423
     * <p>Works like {@code abbreviate(String, int)}, but allows you to specify
7424
     * a "left edge" offset.  Note that this left edge is not necessarily going to
7425
     * be the leftmost character in the result, or the first character following the
7426
     * ellipses, but it will appear somewhere in the result.
7427
     *
7428
     * <p>In no case will it return a String of length greater than
7429
     * {@code maxWidth}.</p>
7430
     *
7431
     * <pre>
7432
     * StringUtils.abbreviate(null, *, *)                = null
7433
     * StringUtils.abbreviate("", 0, 4)                  = ""
7434
     * StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."
7435
     * StringUtils.abbreviate("abcdefghijklmno", 0, 10)  = "abcdefg..."
7436
     * StringUtils.abbreviate("abcdefghijklmno", 1, 10)  = "abcdefg..."
7437
     * StringUtils.abbreviate("abcdefghijklmno", 4, 10)  = "abcdefg..."
7438
     * StringUtils.abbreviate("abcdefghijklmno", 5, 10)  = "...fghi..."
7439
     * StringUtils.abbreviate("abcdefghijklmno", 6, 10)  = "...ghij..."
7440
     * StringUtils.abbreviate("abcdefghijklmno", 8, 10)  = "...ijklmno"
7441
     * StringUtils.abbreviate("abcdefghijklmno", 10, 10) = "...ijklmno"
7442
     * StringUtils.abbreviate("abcdefghijklmno", 12, 10) = "...ijklmno"
7443
     * StringUtils.abbreviate("abcdefghij", 0, 3)        = IllegalArgumentException
7444
     * StringUtils.abbreviate("abcdefghij", 5, 6)        = IllegalArgumentException
7445
     * </pre>
7446
     *
7447
     * @param str  the String to check, may be null
7448
     * @param offset  left edge of source String
7449
     * @param maxWidth  maximum length of result String, must be at least 4
7450
     * @return abbreviated String, {@code null} if null String input
7451
     * @throws IllegalArgumentException if the width is too small
7452
     * @since 2.0
7453
     */
7454
    public static String abbreviate(final String str, final int offset, final int maxWidth) {
7455
        final String defaultAbbrevMarker = "...";
7456 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, defaultAbbrevMarker, offset, maxWidth);
7457
    }
7458
7459
    /**
7460
     * <p>Abbreviates a String using another given String as replacement marker. This will turn
7461
     * "Now is the time for all good men" into "Now is the time for..." if "..." was defined
7462
     * as the replacement marker.</p>
7463
     *
7464
     * <p>Specifically:</p>
7465
     * <ul>
7466
     *   <li>If the number of characters in {@code str} is less than or equal to 
7467
     *       {@code maxWidth}, return {@code str}.</li>
7468
     *   <li>Else abbreviate it to {@code (substring(str, 0, max-abbrevMarker.length) + abbrevMarker)}.</li>
7469
     *   <li>If {@code maxWidth} is less than {@code abbrevMarker.length + 1}, throw an
7470
     *       {@code IllegalArgumentException}.</li>
7471
     *   <li>In no case will it return a String of length greater than
7472
     *       {@code maxWidth}.</li>
7473
     * </ul>
7474
     *
7475
     * <pre>
7476
     * StringUtils.abbreviate(null, "...", *)      = null
7477
     * StringUtils.abbreviate("abcdefg", null, *)  = "abcdefg"
7478
     * StringUtils.abbreviate("", "...", 4)        = ""
7479
     * StringUtils.abbreviate("abcdefg", ".", 5)   = "abcd."
7480
     * StringUtils.abbreviate("abcdefg", ".", 7)   = "abcdefg"
7481
     * StringUtils.abbreviate("abcdefg", ".", 8)   = "abcdefg"
7482
     * StringUtils.abbreviate("abcdefg", "..", 4)  = "ab.."
7483
     * StringUtils.abbreviate("abcdefg", "..", 3)  = "a.."
7484
     * StringUtils.abbreviate("abcdefg", "..", 2)  = IllegalArgumentException
7485
     * StringUtils.abbreviate("abcdefg", "...", 3) = IllegalArgumentException
7486
     * </pre>
7487
     *
7488
     * @param str  the String to check, may be null
7489
     * @param abbrevMarker  the String used as replacement marker
7490
     * @param maxWidth  maximum length of result String, must be at least {@code abbrevMarker.length + 1}
7491
     * @return abbreviated String, {@code null} if null String input
7492
     * @throws IllegalArgumentException if the width is too small
7493
     * @since 3.5
7494
     */
7495
    public static String abbreviate(final String str, final String abbrevMarker, final int maxWidth) {
7496 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbreviate(str, abbrevMarker, 0, maxWidth);
7497
    }
7498
7499
    /**
7500
     * <p>Abbreviates a String using a given replacement marker. This will turn
7501
     * "Now is the time for all good men" into "...is the time for..." if "..." was defined
7502
     * as the replacement marker.</p>
7503
     *
7504
     * <p>Works like {@code abbreviate(String, String, int)}, but allows you to specify
7505
     * a "left edge" offset.  Note that this left edge is not necessarily going to
7506
     * be the leftmost character in the result, or the first character following the
7507
     * replacement marker, but it will appear somewhere in the result.
7508
     *
7509
     * <p>In no case will it return a String of length greater than {@code maxWidth}.</p>
7510
     *
7511
     * <pre>
7512
     * StringUtils.abbreviate(null, null, *, *)                 = null
7513
     * StringUtils.abbreviate("abcdefghijklmno", null, *, *)    = "abcdefghijklmno"
7514
     * StringUtils.abbreviate("", "...", 0, 4)                  = ""
7515
     * StringUtils.abbreviate("abcdefghijklmno", "---", -1, 10) = "abcdefg---"
7516
     * StringUtils.abbreviate("abcdefghijklmno", ",", 0, 10)    = "abcdefghi,"
7517
     * StringUtils.abbreviate("abcdefghijklmno", ",", 1, 10)    = "abcdefghi,"
7518
     * StringUtils.abbreviate("abcdefghijklmno", ",", 2, 10)    = "abcdefghi,"
7519
     * StringUtils.abbreviate("abcdefghijklmno", "::", 4, 10)   = "::efghij::"
7520
     * StringUtils.abbreviate("abcdefghijklmno", "...", 6, 10)  = "...ghij..."
7521
     * StringUtils.abbreviate("abcdefghijklmno", "*", 9, 10)    = "*ghijklmno"
7522
     * StringUtils.abbreviate("abcdefghijklmno", "'", 10, 10)   = "'ghijklmno"
7523
     * StringUtils.abbreviate("abcdefghijklmno", "!", 12, 10)   = "!ghijklmno"
7524
     * StringUtils.abbreviate("abcdefghij", "abra", 0, 4)       = IllegalArgumentException
7525
     * StringUtils.abbreviate("abcdefghij", "...", 5, 6)        = IllegalArgumentException
7526
     * </pre>
7527
     *
7528
     * @param str  the String to check, may be null
7529
     * @param abbrevMarker  the String used as replacement marker
7530
     * @param offset  left edge of source String
7531
     * @param maxWidth  maximum length of result String, must be at least 4
7532
     * @return abbreviated String, {@code null} if null String input
7533
     * @throws IllegalArgumentException if the width is too small
7534
     * @since 3.5
7535
     */
7536
    public static String abbreviate(final String str, final String abbrevMarker, int offset, final int maxWidth) {
7537 2 1. abbreviate : negated conditional → KILLED
2. abbreviate : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(abbrevMarker)) {
7538 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7539
        }
7540
7541
        final int abbrevMarkerLength = abbrevMarker.length();
7542 1 1. abbreviate : Replaced integer addition with subtraction → KILLED
        final int minAbbrevWidth = abbrevMarkerLength + 1;
7543 2 1. abbreviate : Replaced integer addition with subtraction → SURVIVED
2. abbreviate : Replaced integer addition with subtraction → SURVIVED
        final int minAbbrevWidthOffset = abbrevMarkerLength + abbrevMarkerLength + 1;
7544
7545 2 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : negated conditional → KILLED
        if (maxWidth < minAbbrevWidth) {
7546
            throw new IllegalArgumentException(String.format("Minimum abbreviation width is %d", minAbbrevWidth));
7547
        }
7548 2 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : negated conditional → KILLED
        if (str.length() <= maxWidth) {
7549 1 1. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7550
        }
7551 2 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
        if (offset > str.length()) {
7552
            offset = str.length();
7553
        }
7554 4 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : Replaced integer subtraction with addition → SURVIVED
3. abbreviate : Replaced integer subtraction with addition → KILLED
4. abbreviate : negated conditional → KILLED
        if (str.length() - offset < maxWidth - abbrevMarkerLength) {
7555 2 1. abbreviate : Replaced integer subtraction with addition → SURVIVED
2. abbreviate : Replaced integer subtraction with addition → KILLED
            offset = str.length() - (maxWidth - abbrevMarkerLength);
7556
        }
7557 3 1. abbreviate : changed conditional boundary → KILLED
2. abbreviate : Replaced integer addition with subtraction → KILLED
3. abbreviate : negated conditional → KILLED
        if (offset <= abbrevMarkerLength+1) {
7558 2 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str.substring(0, maxWidth - abbrevMarkerLength) + abbrevMarker;
7559
        }
7560 2 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : negated conditional → KILLED
        if (maxWidth < minAbbrevWidthOffset) {
7561
            throw new IllegalArgumentException(String.format("Minimum abbreviation width with offset is %d", minAbbrevWidthOffset));
7562
        }
7563 4 1. abbreviate : changed conditional boundary → SURVIVED
2. abbreviate : Replaced integer addition with subtraction → SURVIVED
3. abbreviate : Replaced integer subtraction with addition → KILLED
4. abbreviate : negated conditional → KILLED
        if (offset + maxWidth - abbrevMarkerLength < str.length()) {
7564 2 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return abbrevMarker + abbreviate(str.substring(offset), abbrevMarker, maxWidth - abbrevMarkerLength);
7565
        }
7566 3 1. abbreviate : Replaced integer subtraction with addition → KILLED
2. abbreviate : Replaced integer subtraction with addition → KILLED
3. abbreviate : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return abbrevMarker + str.substring(str.length() - (maxWidth - abbrevMarkerLength));
7567
    }
7568
7569
    /**
7570
     * <p>Abbreviates a String to the length passed, replacing the middle characters with the supplied
7571
     * replacement String.</p>
7572
     *
7573
     * <p>This abbreviation only occurs if the following criteria is met:</p>
7574
     * <ul>
7575
     * <li>Neither the String for abbreviation nor the replacement String are null or empty </li>
7576
     * <li>The length to truncate to is less than the length of the supplied String</li>
7577
     * <li>The length to truncate to is greater than 0</li>
7578
     * <li>The abbreviated String will have enough room for the length supplied replacement String
7579
     * and the first and last characters of the supplied String for abbreviation</li>
7580
     * </ul>
7581
     * <p>Otherwise, the returned String will be the same as the supplied String for abbreviation.
7582
     * </p>
7583
     *
7584
     * <pre>
7585
     * StringUtils.abbreviateMiddle(null, null, 0)      = null
7586
     * StringUtils.abbreviateMiddle("abc", null, 0)      = "abc"
7587
     * StringUtils.abbreviateMiddle("abc", ".", 0)      = "abc"
7588
     * StringUtils.abbreviateMiddle("abc", ".", 3)      = "abc"
7589
     * StringUtils.abbreviateMiddle("abcdef", ".", 4)     = "ab.f"
7590
     * </pre>
7591
     *
7592
     * @param str  the String to abbreviate, may be null
7593
     * @param middle the String to replace the middle characters with, may be null
7594
     * @param length the length to abbreviate {@code str} to.
7595
     * @return the abbreviated String if the above criteria is met, or the original String supplied for abbreviation.
7596
     * @since 2.5
7597
     */
7598
    public static String abbreviateMiddle(final String str, final String middle, final int length) {
7599 2 1. abbreviateMiddle : negated conditional → KILLED
2. abbreviateMiddle : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(middle)) {
7600 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7601
        }
7602
7603 5 1. abbreviateMiddle : changed conditional boundary → KILLED
2. abbreviateMiddle : changed conditional boundary → KILLED
3. abbreviateMiddle : Replaced integer addition with subtraction → KILLED
4. abbreviateMiddle : negated conditional → KILLED
5. abbreviateMiddle : negated conditional → KILLED
        if (length >= str.length() || length < middle.length()+2) {
7604 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
7605
        }
7606
7607 1 1. abbreviateMiddle : Replaced integer subtraction with addition → KILLED
        final int targetSting = length-middle.length();
7608 3 1. abbreviateMiddle : Replaced integer division with multiplication → KILLED
2. abbreviateMiddle : Replaced integer modulus with multiplication → KILLED
3. abbreviateMiddle : Replaced integer addition with subtraction → KILLED
        final int startOffset = targetSting/2+targetSting%2;
7609 2 1. abbreviateMiddle : Replaced integer division with multiplication → KILLED
2. abbreviateMiddle : Replaced integer subtraction with addition → KILLED
        final int endOffset = str.length()-targetSting/2;
7610
7611
        final StringBuilder builder = new StringBuilder(length);
7612
        builder.append(str.substring(0,startOffset));
7613
        builder.append(middle);
7614
        builder.append(str.substring(endOffset));
7615
7616 1 1. abbreviateMiddle : mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
7617
    }
7618
7619
    // Difference
7620
    //-----------------------------------------------------------------------
7621
    /**
7622
     * <p>Compares two Strings, and returns the portion where they differ.
7623
     * More precisely, return the remainder of the second String,
7624
     * starting from where it's different from the first. This means that
7625
     * the difference between "abc" and "ab" is the empty String and not "c". </p>
7626
     *
7627
     * <p>For example,
7628
     * {@code difference("i am a machine", "i am a robot") -> "robot"}.</p>
7629
     *
7630
     * <pre>
7631
     * StringUtils.difference(null, null) = null
7632
     * StringUtils.difference("", "") = ""
7633
     * StringUtils.difference("", "abc") = "abc"
7634
     * StringUtils.difference("abc", "") = ""
7635
     * StringUtils.difference("abc", "abc") = ""
7636
     * StringUtils.difference("abc", "ab") = ""
7637
     * StringUtils.difference("ab", "abxyz") = "xyz"
7638
     * StringUtils.difference("abcde", "abxyz") = "xyz"
7639
     * StringUtils.difference("abcde", "xyz") = "xyz"
7640
     * </pre>
7641
     *
7642
     * @param str1  the first String, may be null
7643
     * @param str2  the second String, may be null
7644
     * @return the portion of str2 where it differs from str1; returns the
7645
     * empty String if they are equal
7646
     * @see #indexOfDifference(CharSequence,CharSequence)
7647
     * @since 2.0
7648
     */
7649
    public static String difference(final String str1, final String str2) {
7650 1 1. difference : negated conditional → KILLED
        if (str1 == null) {
7651 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str2;
7652
        }
7653 1 1. difference : negated conditional → KILLED
        if (str2 == null) {
7654 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str1;
7655
        }
7656
        final int at = indexOfDifference(str1, str2);
7657 1 1. difference : negated conditional → KILLED
        if (at == INDEX_NOT_FOUND) {
7658 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7659
        }
7660 1 1. difference : mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str2.substring(at);
7661
    }
7662
7663
    /**
7664
     * <p>Compares two CharSequences, and returns the index at which the
7665
     * CharSequences begin to differ.</p>
7666
     *
7667
     * <p>For example,
7668
     * {@code indexOfDifference("i am a machine", "i am a robot") -> 7}</p>
7669
     *
7670
     * <pre>
7671
     * StringUtils.indexOfDifference(null, null) = -1
7672
     * StringUtils.indexOfDifference("", "") = -1
7673
     * StringUtils.indexOfDifference("", "abc") = 0
7674
     * StringUtils.indexOfDifference("abc", "") = 0
7675
     * StringUtils.indexOfDifference("abc", "abc") = -1
7676
     * StringUtils.indexOfDifference("ab", "abxyz") = 2
7677
     * StringUtils.indexOfDifference("abcde", "abxyz") = 2
7678
     * StringUtils.indexOfDifference("abcde", "xyz") = 0
7679
     * </pre>
7680
     *
7681
     * @param cs1  the first CharSequence, may be null
7682
     * @param cs2  the second CharSequence, may be null
7683
     * @return the index where cs1 and cs2 begin to differ; -1 if they are equal
7684
     * @since 2.0
7685
     * @since 3.0 Changed signature from indexOfDifference(String, String) to
7686
     * indexOfDifference(CharSequence, CharSequence)
7687
     */
7688
    public static int indexOfDifference(final CharSequence cs1, final CharSequence cs2) {
7689 1 1. indexOfDifference : negated conditional → KILLED
        if (cs1 == cs2) {
7690 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7691
        }
7692 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
        if (cs1 == null || cs2 == null) {
7693 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
7694
        }
7695
        int i;
7696 5 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : changed conditional boundary → KILLED
3. indexOfDifference : Changed increment from 1 to -1 → KILLED
4. indexOfDifference : negated conditional → KILLED
5. indexOfDifference : negated conditional → KILLED
        for (i = 0; i < cs1.length() && i < cs2.length(); ++i) {
7697 1 1. indexOfDifference : negated conditional → KILLED
            if (cs1.charAt(i) != cs2.charAt(i)) {
7698
                break;
7699
            }
7700
        }
7701 4 1. indexOfDifference : changed conditional boundary → SURVIVED
2. indexOfDifference : changed conditional boundary → SURVIVED
3. indexOfDifference : negated conditional → KILLED
4. indexOfDifference : negated conditional → KILLED
        if (i < cs2.length() || i < cs1.length()) {
7702 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return i;
7703
        }
7704 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
        return INDEX_NOT_FOUND;
7705
    }
7706
7707
    /**
7708
     * <p>Compares all CharSequences in an array and returns the index at which the
7709
     * CharSequences begin to differ.</p>
7710
     *
7711
     * <p>For example,
7712
     * <code>indexOfDifference(new String[] {"i am a machine", "i am a robot"}) -&gt; 7</code></p>
7713
     *
7714
     * <pre>
7715
     * StringUtils.indexOfDifference(null) = -1
7716
     * StringUtils.indexOfDifference(new String[] {}) = -1
7717
     * StringUtils.indexOfDifference(new String[] {"abc"}) = -1
7718
     * StringUtils.indexOfDifference(new String[] {null, null}) = -1
7719
     * StringUtils.indexOfDifference(new String[] {"", ""}) = -1
7720
     * StringUtils.indexOfDifference(new String[] {"", null}) = 0
7721
     * StringUtils.indexOfDifference(new String[] {"abc", null, null}) = 0
7722
     * StringUtils.indexOfDifference(new String[] {null, null, "abc"}) = 0
7723
     * StringUtils.indexOfDifference(new String[] {"", "abc"}) = 0
7724
     * StringUtils.indexOfDifference(new String[] {"abc", ""}) = 0
7725
     * StringUtils.indexOfDifference(new String[] {"abc", "abc"}) = -1
7726
     * StringUtils.indexOfDifference(new String[] {"abc", "a"}) = 1
7727
     * StringUtils.indexOfDifference(new String[] {"ab", "abxyz"}) = 2
7728
     * StringUtils.indexOfDifference(new String[] {"abcde", "abxyz"}) = 2
7729
     * StringUtils.indexOfDifference(new String[] {"abcde", "xyz"}) = 0
7730
     * StringUtils.indexOfDifference(new String[] {"xyz", "abcde"}) = 0
7731
     * StringUtils.indexOfDifference(new String[] {"i am a machine", "i am a robot"}) = 7
7732
     * </pre>
7733
     *
7734
     * @param css  array of CharSequences, entries may be null
7735
     * @return the index where the strings begin to differ; -1 if they are all equal
7736
     * @since 2.4
7737
     * @since 3.0 Changed signature from indexOfDifference(String...) to indexOfDifference(CharSequence...)
7738
     */
7739
    public static int indexOfDifference(final CharSequence... css) {
7740 3 1. indexOfDifference : changed conditional boundary → SURVIVED
2. indexOfDifference : negated conditional → KILLED
3. indexOfDifference : negated conditional → KILLED
        if (css == null || css.length <= 1) {
7741 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7742
        }
7743
        boolean anyStringNull = false;
7744
        boolean allStringsNull = true;
7745
        final int arrayLen = css.length;
7746
        int shortestStrLen = Integer.MAX_VALUE;
7747
        int longestStrLen = 0;
7748
7749
        // find the min and max string lengths; this avoids checking to make
7750
        // sure we are not exceeding the length of the string each time through
7751
        // the bottom loop.
7752 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
        for (CharSequence cs : css) {
7753 1 1. indexOfDifference : negated conditional → KILLED
            if (cs == null) {
7754
                anyStringNull = true;
7755
                shortestStrLen = 0;
7756
            } else {
7757
                allStringsNull = false;
7758
                shortestStrLen = Math.min(cs.length(), shortestStrLen);
7759
                longestStrLen = Math.max(cs.length(), longestStrLen);
7760
            }
7761
        }
7762
7763
        // handle lists containing all nulls or all empty strings
7764 3 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
3. indexOfDifference : negated conditional → KILLED
        if (allStringsNull || longestStrLen == 0 && !anyStringNull) {
7765 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return INDEX_NOT_FOUND;
7766
        }
7767
7768
        // handle lists containing some nulls or some empty strings
7769 1 1. indexOfDifference : negated conditional → KILLED
        if (shortestStrLen == 0) {
7770 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return 0;
7771
        }
7772
7773
        // find the position with the first difference across all strings
7774
        int firstDiff = -1;
7775 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
        for (int stringPos = 0; stringPos < shortestStrLen; stringPos++) {
7776
            final char comparisonChar = css[0].charAt(stringPos);
7777 3 1. indexOfDifference : changed conditional boundary → KILLED
2. indexOfDifference : Changed increment from 1 to -1 → KILLED
3. indexOfDifference : negated conditional → KILLED
            for (int arrayPos = 1; arrayPos < arrayLen; arrayPos++) {
7778 1 1. indexOfDifference : negated conditional → KILLED
                if (css[arrayPos].charAt(stringPos) != comparisonChar) {
7779
                    firstDiff = stringPos;
7780
                    break;
7781
                }
7782
            }
7783 1 1. indexOfDifference : negated conditional → KILLED
            if (firstDiff != -1) {
7784
                break;
7785
            }
7786
        }
7787
7788 2 1. indexOfDifference : negated conditional → KILLED
2. indexOfDifference : negated conditional → KILLED
        if (firstDiff == -1 && shortestStrLen != longestStrLen) {
7789
            // we compared all of the characters up to the length of the
7790
            // shortest string and didn't find a match, but the string lengths
7791
            // vary, so return the length of the shortest string.
7792 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return shortestStrLen;
7793
        }
7794 1 1. indexOfDifference : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return firstDiff;
7795
    }
7796
7797
    /**
7798
     * <p>Compares all Strings in an array and returns the initial sequence of
7799
     * characters that is common to all of them.</p>
7800
     *
7801
     * <p>For example,
7802
     * <code>getCommonPrefix(new String[] {"i am a machine", "i am a robot"}) -&gt; "i am a "</code></p>
7803
     *
7804
     * <pre>
7805
     * StringUtils.getCommonPrefix(null) = ""
7806
     * StringUtils.getCommonPrefix(new String[] {}) = ""
7807
     * StringUtils.getCommonPrefix(new String[] {"abc"}) = "abc"
7808
     * StringUtils.getCommonPrefix(new String[] {null, null}) = ""
7809
     * StringUtils.getCommonPrefix(new String[] {"", ""}) = ""
7810
     * StringUtils.getCommonPrefix(new String[] {"", null}) = ""
7811
     * StringUtils.getCommonPrefix(new String[] {"abc", null, null}) = ""
7812
     * StringUtils.getCommonPrefix(new String[] {null, null, "abc"}) = ""
7813
     * StringUtils.getCommonPrefix(new String[] {"", "abc"}) = ""
7814
     * StringUtils.getCommonPrefix(new String[] {"abc", ""}) = ""
7815
     * StringUtils.getCommonPrefix(new String[] {"abc", "abc"}) = "abc"
7816
     * StringUtils.getCommonPrefix(new String[] {"abc", "a"}) = "a"
7817
     * StringUtils.getCommonPrefix(new String[] {"ab", "abxyz"}) = "ab"
7818
     * StringUtils.getCommonPrefix(new String[] {"abcde", "abxyz"}) = "ab"
7819
     * StringUtils.getCommonPrefix(new String[] {"abcde", "xyz"}) = ""
7820
     * StringUtils.getCommonPrefix(new String[] {"xyz", "abcde"}) = ""
7821
     * StringUtils.getCommonPrefix(new String[] {"i am a machine", "i am a robot"}) = "i am a "
7822
     * </pre>
7823
     *
7824
     * @param strs  array of String objects, entries may be null
7825
     * @return the initial sequence of characters that are common to all Strings
7826
     * in the array; empty String if the array is null, the elements are all null
7827
     * or if there is no common prefix.
7828
     * @since 2.4
7829
     */
7830
    public static String getCommonPrefix(final String... strs) {
7831 2 1. getCommonPrefix : negated conditional → KILLED
2. getCommonPrefix : negated conditional → KILLED
        if (strs == null || strs.length == 0) {
7832 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7833
        }
7834
        final int smallestIndexOfDiff = indexOfDifference(strs);
7835 1 1. getCommonPrefix : negated conditional → KILLED
        if (smallestIndexOfDiff == INDEX_NOT_FOUND) {
7836
            // all strings were identical
7837 1 1. getCommonPrefix : negated conditional → KILLED
            if (strs[0] == null) {
7838 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return EMPTY;
7839
            }
7840 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs[0];
7841 1 1. getCommonPrefix : negated conditional → KILLED
        } else if (smallestIndexOfDiff == 0) {
7842
            // there were no common initial characters
7843 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
7844
        } else {
7845
            // we found a common initial character sequence
7846 1 1. getCommonPrefix : mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return strs[0].substring(0, smallestIndexOfDiff);
7847
        }
7848
    }
7849
7850
    // Misc
7851
    //-----------------------------------------------------------------------
7852
    /**
7853
     * <p>Find the Levenshtein distance between two Strings.</p>
7854
     *
7855
     * <p>This is the number of changes needed to change one String into
7856
     * another, where each change is a single character modification (deletion,
7857
     * insertion or substitution).</p>
7858
     *
7859
     * <p>The implementation uses a single-dimensional array of length s.length() + 1. See 
7860
     * <a href="http://blog.softwx.net/2014/12/optimizing-levenshtein-algorithm-in-c.html">
7861
     * http://blog.softwx.net/2014/12/optimizing-levenshtein-algorithm-in-c.html</a> for details.</p>
7862
     *
7863
     * <pre>
7864
     * StringUtils.getLevenshteinDistance(null, *)             = IllegalArgumentException
7865
     * StringUtils.getLevenshteinDistance(*, null)             = IllegalArgumentException
7866
     * StringUtils.getLevenshteinDistance("","")               = 0
7867
     * StringUtils.getLevenshteinDistance("","a")              = 1
7868
     * StringUtils.getLevenshteinDistance("aaapppp", "")       = 7
7869
     * StringUtils.getLevenshteinDistance("frog", "fog")       = 1
7870
     * StringUtils.getLevenshteinDistance("fly", "ant")        = 3
7871
     * StringUtils.getLevenshteinDistance("elephant", "hippo") = 7
7872
     * StringUtils.getLevenshteinDistance("hippo", "elephant") = 7
7873
     * StringUtils.getLevenshteinDistance("hippo", "zzzzzzzz") = 8
7874
     * StringUtils.getLevenshteinDistance("hello", "hallo")    = 1
7875
     * </pre>
7876
     *
7877
     * @param s  the first String, must not be null
7878
     * @param t  the second String, must not be null
7879
     * @return result distance
7880
     * @throws IllegalArgumentException if either String input {@code null}
7881
     * @since 3.0 Changed signature from getLevenshteinDistance(String, String) to
7882
     * getLevenshteinDistance(CharSequence, CharSequence)
7883
     */
7884
    public static int getLevenshteinDistance(CharSequence s, CharSequence t) {
7885 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (s == null || t == null) {
7886
            throw new IllegalArgumentException("Strings must not be null");
7887
        }
7888
7889
        int n = s.length();
7890
        int m = t.length();
7891
7892 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (n == 0) {
7893 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return m;
7894 1 1. getLevenshteinDistance : negated conditional → KILLED
        } else if (m == 0) {
7895 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return n;
7896
        }
7897
7898 2 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
        if (n > m) {
7899
            // swap the input strings to consume less memory
7900
            final CharSequence tmp = s;
7901
            s = t;
7902
            t = tmp;
7903
            n = m;
7904
            m = t.length();
7905
        }
7906
7907 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        final int p[] = new int[n + 1];
7908
        // indexes into strings s and t
7909
        int i; // iterates through s
7910
        int j; // iterates through t
7911
        int upper_left;
7912
        int upper;
7913
7914
        char t_j; // jth character of t
7915
        int cost;
7916
7917 3 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
3. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
        for (i = 0; i <= n; i++) {
7918
            p[i] = i;
7919
        }
7920
7921 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        for (j = 1; j <= m; j++) {
7922
            upper_left = p[0];
7923 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            t_j = t.charAt(j - 1);
7924
            p[0] = j;
7925
7926 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
            for (i = 1; i <= n; i++) {
7927
                upper = p[i];
7928 2 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
                cost = s.charAt(i - 1) == t_j ? 0 : 1;
7929
                // minimum of cell to the left+1, to the top+1, diagonally left and up +cost
7930 4 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
4. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
                p[i] = Math.min(Math.min(p[i - 1] + 1, p[i] + 1), upper_left + cost);
7931
                upper_left = upper;
7932
            }
7933
        }
7934
7935 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return p[n];
7936
    }
7937
7938
    /**
7939
     * <p>Find the Levenshtein distance between two Strings if it's less than or equal to a given
7940
     * threshold.</p>
7941
     *
7942
     * <p>This is the number of changes needed to change one String into
7943
     * another, where each change is a single character modification (deletion,
7944
     * insertion or substitution).</p>
7945
     *
7946
     * <p>This implementation follows from Algorithms on Strings, Trees and Sequences by Dan Gusfield
7947
     * and Chas Emerick's implementation of the Levenshtein distance algorithm from
7948
     * <a href="http://www.merriampark.com/ld.htm">http://www.merriampark.com/ld.htm</a></p>
7949
     *
7950
     * <pre>
7951
     * StringUtils.getLevenshteinDistance(null, *, *)             = IllegalArgumentException
7952
     * StringUtils.getLevenshteinDistance(*, null, *)             = IllegalArgumentException
7953
     * StringUtils.getLevenshteinDistance(*, *, -1)               = IllegalArgumentException
7954
     * StringUtils.getLevenshteinDistance("","", 0)               = 0
7955
     * StringUtils.getLevenshteinDistance("aaapppp", "", 8)       = 7
7956
     * StringUtils.getLevenshteinDistance("aaapppp", "", 7)       = 7
7957
     * StringUtils.getLevenshteinDistance("aaapppp", "", 6))      = -1
7958
     * StringUtils.getLevenshteinDistance("elephant", "hippo", 7) = 7
7959
     * StringUtils.getLevenshteinDistance("elephant", "hippo", 6) = -1
7960
     * StringUtils.getLevenshteinDistance("hippo", "elephant", 7) = 7
7961
     * StringUtils.getLevenshteinDistance("hippo", "elephant", 6) = -1
7962
     * </pre>
7963
     *
7964
     * @param s  the first String, must not be null
7965
     * @param t  the second String, must not be null
7966
     * @param threshold the target threshold, must not be negative
7967
     * @return result distance, or {@code -1} if the distance would be greater than the threshold
7968
     * @throws IllegalArgumentException if either String input {@code null} or negative threshold
7969
     */
7970
    public static int getLevenshteinDistance(CharSequence s, CharSequence t, final int threshold) {
7971 2 1. getLevenshteinDistance : negated conditional → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (s == null || t == null) {
7972
            throw new IllegalArgumentException("Strings must not be null");
7973
        }
7974 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (threshold < 0) {
7975
            throw new IllegalArgumentException("Threshold must not be negative");
7976
        }
7977
7978
        /*
7979
        This implementation only computes the distance if it's less than or equal to the
7980
        threshold value, returning -1 if it's greater.  The advantage is performance: unbounded
7981
        distance is O(nm), but a bound of k allows us to reduce it to O(km) time by only
7982
        computing a diagonal stripe of width 2k + 1 of the cost table.
7983
        It is also possible to use this to compute the unbounded Levenshtein distance by starting
7984
        the threshold at 1 and doubling each time until the distance is found; this is O(dm), where
7985
        d is the distance.
7986
7987
        One subtlety comes from needing to ignore entries on the border of our stripe
7988
        eg.
7989
        p[] = |#|#|#|*
7990
        d[] =  *|#|#|#|
7991
        We must ignore the entry to the left of the leftmost member
7992
        We must ignore the entry above the rightmost member
7993
7994
        Another subtlety comes from our stripe running off the matrix if the strings aren't
7995
        of the same size.  Since string s is always swapped to be the shorter of the two,
7996
        the stripe will always run off to the upper right instead of the lower left of the matrix.
7997
7998
        As a concrete example, suppose s is of length 5, t is of length 7, and our threshold is 1.
7999
        In this case we're going to walk a stripe of length 3.  The matrix would look like so:
8000
8001
           1 2 3 4 5
8002
        1 |#|#| | | |
8003
        2 |#|#|#| | |
8004
        3 | |#|#|#| |
8005
        4 | | |#|#|#|
8006
        5 | | | |#|#|
8007
        6 | | | | |#|
8008
        7 | | | | | |
8009
8010
        Note how the stripe leads off the table as there is no possible way to turn a string of length 5
8011
        into one of length 7 in edit distance of 1.
8012
8013
        Additionally, this implementation decreases memory usage by using two
8014
        single-dimensional arrays and swapping them back and forth instead of allocating
8015
        an entire n by m matrix.  This requires a few minor changes, such as immediately returning
8016
        when it's detected that the stripe has run off the matrix and initially filling the arrays with
8017
        large values so that entries we don't compute are ignored.
8018
8019
        See Algorithms on Strings, Trees and Sequences by Dan Gusfield for some discussion.
8020
         */
8021
8022
        int n = s.length(); // length of s
8023
        int m = t.length(); // length of t
8024
8025
        // if one string is empty, the edit distance is necessarily the length of the other
8026 1 1. getLevenshteinDistance : negated conditional → KILLED
        if (n == 0) {
8027 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
3. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return m <= threshold ? m : -1;
8028 1 1. getLevenshteinDistance : negated conditional → KILLED
        } else if (m == 0) {
8029 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
3. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return n <= threshold ? n : -1;
8030
        }
8031
        // no need to calculate the distance if the length difference is greater than the threshold
8032 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        else if (Math.abs(n - m) > threshold) {
8033 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return -1;
8034
        }
8035
8036 2 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : negated conditional → SURVIVED
        if (n > m) {
8037
            // swap the two strings to consume less memory
8038
            final CharSequence tmp = s;
8039
            s = t;
8040
            t = tmp;
8041
            n = m;
8042
            m = t.length();
8043
        }
8044
8045 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        int p[] = new int[n + 1]; // 'previous' cost array, horizontally
8046 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        int d[] = new int[n + 1]; // cost array, horizontally
8047
        int _d[]; // placeholder to assist in swapping p and d
8048
8049
        // fill in starting table values
8050 1 1. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
        final int boundary = Math.min(n, threshold) + 1;
8051 3 1. getLevenshteinDistance : negated conditional → SURVIVED
2. getLevenshteinDistance : changed conditional boundary → KILLED
3. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
        for (int i = 0; i < boundary; i++) {
8052
            p[i] = i;
8053
        }
8054
        // these fills ensure that the value above the rightmost entry of our
8055
        // stripe will be ignored in following loop iterations
8056 1 1. getLevenshteinDistance : removed call to java/util/Arrays::fill → SURVIVED
        Arrays.fill(p, boundary, p.length, Integer.MAX_VALUE);
8057 1 1. getLevenshteinDistance : removed call to java/util/Arrays::fill → SURVIVED
        Arrays.fill(d, Integer.MAX_VALUE);
8058
8059
        // iterates through t
8060 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
        for (int j = 1; j <= m; j++) {
8061 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            final char t_j = t.charAt(j - 1); // jth character of t
8062
            d[0] = j;
8063
8064
            // compute stripe indices, constrain to array size
8065 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
            final int min = Math.max(1, j - threshold);
8066 4 1. getLevenshteinDistance : changed conditional boundary → SURVIVED
2. getLevenshteinDistance : Replaced integer subtraction with addition → SURVIVED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
4. getLevenshteinDistance : negated conditional → KILLED
            final int max = j > Integer.MAX_VALUE - threshold ? n : Math.min(n, j + threshold);
8067
8068
            // the stripe may lead off of the table if s and t are of different sizes
8069 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            if (min > max) {
8070 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE
                return -1;
8071
            }
8072
8073
            // ignore entry left of leftmost
8074 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
            if (min > 1) {
8075 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                d[min - 1] = Integer.MAX_VALUE;
8076
            }
8077
8078
            // iterates through [min, max] in s
8079 3 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : Changed increment from 1 to -1 → KILLED
3. getLevenshteinDistance : negated conditional → KILLED
            for (int i = min; i <= max; i++) {
8080 2 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
                if (s.charAt(i - 1) == t_j) {
8081
                    // diagonally left and up
8082 1 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
                    d[i] = p[i - 1];
8083
                } else {
8084
                    // 1 + minimum of cell to the left, to the top, diagonally left and up
8085 3 1. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
2. getLevenshteinDistance : Replaced integer subtraction with addition → KILLED
3. getLevenshteinDistance : Replaced integer addition with subtraction → KILLED
                    d[i] = 1 + Math.min(Math.min(d[i - 1], p[i]), p[i - 1]);
8086
                }
8087
            }
8088
8089
            // copy current distance counts to 'previous row' distance counts
8090
            _d = p;
8091
            p = d;
8092
            d = _d;
8093
        }
8094
8095
        // if p[n] is greater than the threshold, there's no guarantee on it being the correct
8096
        // distance
8097 2 1. getLevenshteinDistance : changed conditional boundary → KILLED
2. getLevenshteinDistance : negated conditional → KILLED
        if (p[n] <= threshold) {
8098 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return p[n];
8099
        }
8100 1 1. getLevenshteinDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return -1;
8101
    }
8102
    
8103
    /**
8104
     * <p>Find the Jaro Winkler Distance which indicates the similarity score between two Strings.</p>
8105
     *
8106
     * <p>The Jaro measure is the weighted sum of percentage of matched characters from each file and transposed characters. 
8107
     * Winkler increased this measure for matching initial characters.</p>
8108
     *
8109
     * <p>This implementation is based on the Jaro Winkler similarity algorithm
8110
     * from <a href="http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance">http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance</a>.</p>
8111
     * 
8112
     * <pre>
8113
     * StringUtils.getJaroWinklerDistance(null, null)          = IllegalArgumentException
8114
     * StringUtils.getJaroWinklerDistance("","")               = 0.0
8115
     * StringUtils.getJaroWinklerDistance("","a")              = 0.0
8116
     * StringUtils.getJaroWinklerDistance("aaapppp", "")       = 0.0
8117
     * StringUtils.getJaroWinklerDistance("frog", "fog")       = 0.93
8118
     * StringUtils.getJaroWinklerDistance("fly", "ant")        = 0.0
8119
     * StringUtils.getJaroWinklerDistance("elephant", "hippo") = 0.44
8120
     * StringUtils.getJaroWinklerDistance("hippo", "elephant") = 0.44
8121
     * StringUtils.getJaroWinklerDistance("hippo", "zzzzzzzz") = 0.0
8122
     * StringUtils.getJaroWinklerDistance("hello", "hallo")    = 0.88
8123
     * StringUtils.getJaroWinklerDistance("ABC Corporation", "ABC Corp") = 0.93
8124
     * StringUtils.getJaroWinklerDistance("D N H Enterprises Inc", "D &amp; H Enterprises, Inc.") = 0.95
8125
     * StringUtils.getJaroWinklerDistance("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.92
8126
     * StringUtils.getJaroWinklerDistance("PENNSYLVANIA", "PENNCISYLVNIA") = 0.88
8127
     * </pre>
8128
     *
8129
     * @param first the first String, must not be null
8130
     * @param second the second String, must not be null
8131
     * @return result distance
8132
     * @throws IllegalArgumentException if either String input {@code null}
8133
     * @since 3.3
8134
     * @deprecated as of 3.6, due to a misleading name, use {@link #getJaroWinklerSimilarity(CharSequence, CharSequence)} instead
8135
     */
8136
    @Deprecated
8137
    public static double getJaroWinklerDistance(final CharSequence first, final CharSequence second) {
8138
        final double DEFAULT_SCALING_FACTOR = 0.1;
8139
8140 2 1. getJaroWinklerDistance : negated conditional → KILLED
2. getJaroWinklerDistance : negated conditional → KILLED
        if (first == null || second == null) {
8141
            throw new IllegalArgumentException("Strings must not be null");
8142
        }
8143
8144
        final int[] mtp = matches(first, second);
8145
        final double m = mtp[0];
8146 1 1. getJaroWinklerDistance : negated conditional → KILLED
        if (m == 0) {
8147 1 1. getJaroWinklerDistance : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED
            return 0D;
8148
        }
8149 7 1. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
4. getJaroWinklerDistance : Replaced double subtraction with addition → KILLED
5. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
6. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
7. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
        final double j = ((m / first.length() + m / second.length() + (m - mtp[1]) / m)) / 3;
8150 7 1. getJaroWinklerDistance : changed conditional boundary → SURVIVED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
4. getJaroWinklerDistance : Replaced double subtraction with addition → KILLED
5. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
6. getJaroWinklerDistance : Replaced double addition with subtraction → KILLED
7. getJaroWinklerDistance : negated conditional → KILLED
        final double jw = j < 0.7D ? j : j + Math.min(DEFAULT_SCALING_FACTOR, 1D / mtp[3]) * mtp[2] * (1D - j);
8151 3 1. getJaroWinklerDistance : Replaced double multiplication with division → KILLED
2. getJaroWinklerDistance : Replaced double division with multiplication → KILLED
3. getJaroWinklerDistance : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED
        return Math.round(jw * 100.0D) / 100.0D;
8152
    }
8153
8154
    /**
8155
     * <p>Find the Jaro Winkler Similarity which indicates the similarity score between two Strings.</p>
8156
     *
8157
     * <p>The Jaro measure is the weighted sum of percentage of matched characters from each file and transposed characters. 
8158
     * Winkler increased this measure for matching initial characters.</p>
8159
     *
8160
     * <p>This implementation is based on the Jaro Winkler similarity algorithm
8161
     * from <a href="http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance">http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance</a>.</p>
8162
     * 
8163
     * <pre>
8164
     * StringUtils.getJaroWinklerSimilarity(null, null)          = IllegalArgumentException
8165
     * StringUtils.getJaroWinklerSimilarity("","")               = 0.0
8166
     * StringUtils.getJaroWinklerSimilarity("","a")              = 0.0
8167
     * StringUtils.getJaroWinklerSimilarity("aaapppp", "")       = 0.0
8168
     * StringUtils.getJaroWinklerSimilarity("frog", "fog")       = 0.93
8169
     * StringUtils.getJaroWinklerSimilarity("fly", "ant")        = 0.0
8170
     * StringUtils.getJaroWinklerSimilarity("elephant", "hippo") = 0.44
8171
     * StringUtils.getJaroWinklerSimilarity("hippo", "elephant") = 0.44
8172
     * StringUtils.getJaroWinklerSimilarity("hippo", "zzzzzzzz") = 0.0
8173
     * StringUtils.getJaroWinklerSimilarity("hello", "hallo")    = 0.88
8174
     * StringUtils.getJaroWinklerSimilarity("ABC Corporation", "ABC Corp") = 0.93
8175
     * StringUtils.getJaroWinklerSimilarity("D N H Enterprises Inc", "D &amp; H Enterprises, Inc.") = 0.95
8176
     * StringUtils.getJaroWinklerSimilarity("My Gym Children's Fitness Center", "My Gym. Childrens Fitness") = 0.92
8177
     * StringUtils.getJaroWinklerSimilarity("PENNSYLVANIA", "PENNCISYLVNIA") = 0.88
8178
     * </pre>
8179
     *
8180
     * @param first the first String, must not be null
8181
     * @param second the second String, must not be null
8182
     * @return result similarity
8183
     * @throws IllegalArgumentException if either String input {@code null}
8184
     * @since 3.6
8185
     */
8186
    public static double getJaroWinklerSimilarity(final CharSequence first, final CharSequence second) {
8187
        final double DEFAULT_SCALING_FACTOR = 0.1;
8188
8189 2 1. getJaroWinklerSimilarity : negated conditional → KILLED
2. getJaroWinklerSimilarity : negated conditional → KILLED
        if (first == null || second == null) {
8190
            throw new IllegalArgumentException("Strings must not be null");
8191
        }
8192
8193
        final int[] mtp = matches(first, second);
8194
        final double m = mtp[0];
8195 1 1. getJaroWinklerSimilarity : negated conditional → KILLED
        if (m == 0) {
8196 1 1. getJaroWinklerSimilarity : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED
            return 0D;
8197
        }
8198 7 1. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
4. getJaroWinklerSimilarity : Replaced double subtraction with addition → KILLED
5. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
6. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
7. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
        final double j = ((m / first.length() + m / second.length() + (m - mtp[1]) / m)) / 3;
8199 7 1. getJaroWinklerSimilarity : changed conditional boundary → SURVIVED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
4. getJaroWinklerSimilarity : Replaced double subtraction with addition → KILLED
5. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
6. getJaroWinklerSimilarity : Replaced double addition with subtraction → KILLED
7. getJaroWinklerSimilarity : negated conditional → KILLED
        final double jw = j < 0.7D ? j : j + Math.min(DEFAULT_SCALING_FACTOR, 1D / mtp[3]) * mtp[2] * (1D - j);
8200 3 1. getJaroWinklerSimilarity : Replaced double multiplication with division → KILLED
2. getJaroWinklerSimilarity : Replaced double division with multiplication → KILLED
3. getJaroWinklerSimilarity : replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED
        return Math.round(jw * 100.0D) / 100.0D;
8201
    }
8202
8203
    private static int[] matches(final CharSequence first, final CharSequence second) {
8204
        CharSequence max, min;
8205 2 1. matches : changed conditional boundary → SURVIVED
2. matches : negated conditional → KILLED
        if (first.length() > second.length()) {
8206
            max = first;
8207
            min = second;
8208
        } else {
8209
            max = second;
8210
            min = first;
8211
        }
8212 2 1. matches : Replaced integer division with multiplication → KILLED
2. matches : Replaced integer subtraction with addition → KILLED
        final int range = Math.max(max.length() / 2 - 1, 0);
8213
        final int[] matchIndexes = new int[min.length()];
8214 1 1. matches : removed call to java/util/Arrays::fill → KILLED
        Arrays.fill(matchIndexes, -1);
8215
        final boolean[] matchFlags = new boolean[max.length()];
8216
        int matches = 0;
8217 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < min.length(); mi++) {
8218
            final char c1 = min.charAt(mi);
8219 6 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : Replaced integer subtraction with addition → KILLED
4. matches : Replaced integer addition with subtraction → KILLED
5. matches : Replaced integer addition with subtraction → KILLED
6. matches : negated conditional → KILLED
            for (int xi = Math.max(mi - range, 0), xn = Math.min(mi + range + 1, max.length()); xi < xn; xi++) {
8220 2 1. matches : negated conditional → KILLED
2. matches : negated conditional → KILLED
                if (!matchFlags[xi] && c1 == max.charAt(xi)) {
8221
                    matchIndexes[mi] = xi;
8222
                    matchFlags[xi] = true;
8223 1 1. matches : Changed increment from 1 to -1 → KILLED
                    matches++;
8224
                    break;
8225
                }
8226
            }
8227
        }
8228
        final char[] ms1 = new char[matches];
8229
        final char[] ms2 = new char[matches];
8230 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int i = 0, si = 0; i < min.length(); i++) {
8231 1 1. matches : negated conditional → KILLED
            if (matchIndexes[i] != -1) {
8232
                ms1[si] = min.charAt(i);
8233 1 1. matches : Changed increment from 1 to -1 → KILLED
                si++;
8234
            }
8235
        }
8236 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int i = 0, si = 0; i < max.length(); i++) {
8237 1 1. matches : negated conditional → KILLED
            if (matchFlags[i]) {
8238
                ms2[si] = max.charAt(i);
8239 1 1. matches : Changed increment from 1 to -1 → KILLED
                si++;
8240
            }
8241
        }
8242
        int transpositions = 0;
8243 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < ms1.length; mi++) {
8244 1 1. matches : negated conditional → KILLED
            if (ms1[mi] != ms2[mi]) {
8245 1 1. matches : Changed increment from 1 to -1 → KILLED
                transpositions++;
8246
            }
8247
        }
8248
        int prefix = 0;
8249 3 1. matches : changed conditional boundary → KILLED
2. matches : Changed increment from 1 to -1 → KILLED
3. matches : negated conditional → KILLED
        for (int mi = 0; mi < min.length(); mi++) {
8250 1 1. matches : negated conditional → KILLED
            if (first.charAt(mi) == second.charAt(mi)) {
8251 1 1. matches : Changed increment from 1 to -1 → KILLED
                prefix++;
8252
            } else {
8253
                break;
8254
            }
8255
        }
8256 2 1. matches : Replaced integer division with multiplication → KILLED
2. matches : mutated return of Object value for org/apache/commons/lang3/StringUtils::matches to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new int[] { matches, transpositions / 2, prefix, max.length() };
8257
    }
8258
8259
    /**
8260
     * <p>Find the Fuzzy Distance which indicates the similarity score between two Strings.</p>
8261
     *
8262
     * <p>This string matching algorithm is similar to the algorithms of editors such as Sublime Text,
8263
     * TextMate, Atom and others. One point is given for every matched character. Subsequent
8264
     * matches yield two bonus points. A higher score indicates a higher similarity.</p>
8265
     *
8266
     * <pre>
8267
     * StringUtils.getFuzzyDistance(null, null, null)                                    = IllegalArgumentException
8268
     * StringUtils.getFuzzyDistance("", "", Locale.ENGLISH)                              = 0
8269
     * StringUtils.getFuzzyDistance("Workshop", "b", Locale.ENGLISH)                     = 0
8270
     * StringUtils.getFuzzyDistance("Room", "o", Locale.ENGLISH)                         = 1
8271
     * StringUtils.getFuzzyDistance("Workshop", "w", Locale.ENGLISH)                     = 1
8272
     * StringUtils.getFuzzyDistance("Workshop", "ws", Locale.ENGLISH)                    = 2
8273
     * StringUtils.getFuzzyDistance("Workshop", "wo", Locale.ENGLISH)                    = 4
8274
     * StringUtils.getFuzzyDistance("Apache Software Foundation", "asf", Locale.ENGLISH) = 3
8275
     * </pre>
8276
     *
8277
     * @param term a full term that should be matched against, must not be null
8278
     * @param query the query that will be matched against a term, must not be null
8279
     * @param locale This string matching logic is case insensitive. A locale is necessary to normalize
8280
     *  both Strings to lower case.
8281
     * @return result score
8282
     * @throws IllegalArgumentException if either String input {@code null} or Locale input {@code null}
8283
     * @since 3.4
8284
     */
8285
    public static int getFuzzyDistance(final CharSequence term, final CharSequence query, final Locale locale) {
8286 2 1. getFuzzyDistance : negated conditional → KILLED
2. getFuzzyDistance : negated conditional → KILLED
        if (term == null || query == null) {
8287
            throw new IllegalArgumentException("Strings must not be null");
8288 1 1. getFuzzyDistance : negated conditional → KILLED
        } else if (locale == null) {
8289
            throw new IllegalArgumentException("Locale must not be null");
8290
        }
8291
8292
        // fuzzy logic is case insensitive. We normalize the Strings to lower
8293
        // case right from the start. Turning characters to lower case
8294
        // via Character.toLowerCase(char) is unfortunately insufficient
8295
        // as it does not accept a locale.
8296
        final String termLowerCase = term.toString().toLowerCase(locale);
8297
        final String queryLowerCase = query.toString().toLowerCase(locale);
8298
8299
        // the resulting score
8300
        int score = 0;
8301
8302
        // the position in the term which will be scanned next for potential
8303
        // query character matches
8304
        int termIndex = 0;
8305
8306
        // index of the previously matched character in the term
8307
        int previousMatchingCharacterIndex = Integer.MIN_VALUE;
8308
8309 3 1. getFuzzyDistance : changed conditional boundary → KILLED
2. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
3. getFuzzyDistance : negated conditional → KILLED
        for (int queryIndex = 0; queryIndex < queryLowerCase.length(); queryIndex++) {
8310
            final char queryChar = queryLowerCase.charAt(queryIndex);
8311
8312
            boolean termCharacterMatchFound = false;
8313 4 1. getFuzzyDistance : changed conditional boundary → KILLED
2. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
3. getFuzzyDistance : negated conditional → KILLED
4. getFuzzyDistance : negated conditional → KILLED
            for (; termIndex < termLowerCase.length() && !termCharacterMatchFound; termIndex++) {
8314
                final char termChar = termLowerCase.charAt(termIndex);
8315
8316 1 1. getFuzzyDistance : negated conditional → KILLED
                if (queryChar == termChar) {
8317
                    // simple character matches result in one point
8318 1 1. getFuzzyDistance : Changed increment from 1 to -1 → KILLED
                    score++;
8319
8320
                    // subsequent character matches further improve
8321
                    // the score.
8322 2 1. getFuzzyDistance : Replaced integer addition with subtraction → KILLED
2. getFuzzyDistance : negated conditional → KILLED
                    if (previousMatchingCharacterIndex + 1 == termIndex) {
8323 1 1. getFuzzyDistance : Changed increment from 2 to -2 → KILLED
                        score += 2;
8324
                    }
8325
8326
                    previousMatchingCharacterIndex = termIndex;
8327
8328
                    // we can leave the nested loop. Every character in the
8329
                    // query can match at most one character in the term.
8330
                    termCharacterMatchFound = true;
8331
                }
8332
            }
8333
        }
8334
8335 1 1. getFuzzyDistance : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return score;
8336
    }
8337
8338
    // startsWith
8339
    //-----------------------------------------------------------------------
8340
8341
    /**
8342
     * <p>Check if a CharSequence starts with a specified prefix.</p>
8343
     *
8344
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8345
     * references are considered to be equal. The comparison is case sensitive.</p>
8346
     *
8347
     * <pre>
8348
     * StringUtils.startsWith(null, null)      = true
8349
     * StringUtils.startsWith(null, "abc")     = false
8350
     * StringUtils.startsWith("abcdef", null)  = false
8351
     * StringUtils.startsWith("abcdef", "abc") = true
8352
     * StringUtils.startsWith("ABCDEF", "abc") = false
8353
     * </pre>
8354
     *
8355
     * @see java.lang.String#startsWith(String)
8356
     * @param str  the CharSequence to check, may be null
8357
     * @param prefix the prefix to find, may be null
8358
     * @return {@code true} if the CharSequence starts with the prefix, case sensitive, or
8359
     *  both {@code null}
8360
     * @since 2.4
8361
     * @since 3.0 Changed signature from startsWith(String, String) to startsWith(CharSequence, CharSequence)
8362
     */
8363
    public static boolean startsWith(final CharSequence str, final CharSequence prefix) {
8364 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return startsWith(str, prefix, false);
8365
    }
8366
8367
    /**
8368
     * <p>Case insensitive check if a CharSequence starts with a specified prefix.</p>
8369
     *
8370
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8371
     * references are considered to be equal. The comparison is case insensitive.</p>
8372
     *
8373
     * <pre>
8374
     * StringUtils.startsWithIgnoreCase(null, null)      = true
8375
     * StringUtils.startsWithIgnoreCase(null, "abc")     = false
8376
     * StringUtils.startsWithIgnoreCase("abcdef", null)  = false
8377
     * StringUtils.startsWithIgnoreCase("abcdef", "abc") = true
8378
     * StringUtils.startsWithIgnoreCase("ABCDEF", "abc") = true
8379
     * </pre>
8380
     *
8381
     * @see java.lang.String#startsWith(String)
8382
     * @param str  the CharSequence to check, may be null
8383
     * @param prefix the prefix to find, may be null
8384
     * @return {@code true} if the CharSequence starts with the prefix, case insensitive, or
8385
     *  both {@code null}
8386
     * @since 2.4
8387
     * @since 3.0 Changed signature from startsWithIgnoreCase(String, String) to startsWithIgnoreCase(CharSequence, CharSequence)
8388
     */
8389
    public static boolean startsWithIgnoreCase(final CharSequence str, final CharSequence prefix) {
8390 1 1. startsWithIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return startsWith(str, prefix, true);
8391
    }
8392
8393
    /**
8394
     * <p>Check if a CharSequence starts with a specified prefix (optionally case insensitive).</p>
8395
     *
8396
     * @see java.lang.String#startsWith(String)
8397
     * @param str  the CharSequence to check, may be null
8398
     * @param prefix the prefix to find, may be null
8399
     * @param ignoreCase indicates whether the compare should ignore case
8400
     *  (case insensitive) or not.
8401
     * @return {@code true} if the CharSequence starts with the prefix or
8402
     *  both {@code null}
8403
     */
8404
    private static boolean startsWith(final CharSequence str, final CharSequence prefix, final boolean ignoreCase) {
8405 2 1. startsWith : negated conditional → KILLED
2. startsWith : negated conditional → KILLED
        if (str == null || prefix == null) {
8406 3 1. startsWith : negated conditional → KILLED
2. startsWith : negated conditional → KILLED
3. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str == null && prefix == null;
8407
        }
8408 2 1. startsWith : changed conditional boundary → SURVIVED
2. startsWith : negated conditional → KILLED
        if (prefix.length() > str.length()) {
8409 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8410
        }
8411 1 1. startsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(str, ignoreCase, 0, prefix, 0, prefix.length());
8412
    }
8413
8414
    /**
8415
     * <p>Check if a CharSequence starts with any of the provided case-sensitive prefixes.</p>
8416
     *
8417
     * <pre>
8418
     * StringUtils.startsWithAny(null, null)      = false
8419
     * StringUtils.startsWithAny(null, new String[] {"abc"})  = false
8420
     * StringUtils.startsWithAny("abcxyz", null)     = false
8421
     * StringUtils.startsWithAny("abcxyz", new String[] {""}) = true
8422
     * StringUtils.startsWithAny("abcxyz", new String[] {"abc"}) = true
8423
     * StringUtils.startsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
8424
     * StringUtils.startsWithAny("abcxyz", null, "xyz", "ABCX") = false
8425
     * StringUtils.startsWithAny("ABCXYZ", null, "xyz", "abc") = false
8426
     * </pre>
8427
     *
8428
     * @param sequence the CharSequence to check, may be null
8429
     * @param searchStrings the case-sensitive CharSequence prefixes, may be empty or contain {@code null}
8430
     * @see StringUtils#startsWith(CharSequence, CharSequence)
8431
     * @return {@code true} if the input {@code sequence} is {@code null} AND no {@code searchStrings} are provided, or
8432
     *   the input {@code sequence} begins with any of the provided case-sensitive {@code searchStrings}.
8433
     * @since 2.5
8434
     * @since 3.0 Changed signature from startsWithAny(String, String[]) to startsWithAny(CharSequence, CharSequence...)
8435
     */
8436
    public static boolean startsWithAny(final CharSequence sequence, final CharSequence... searchStrings) {
8437 2 1. startsWithAny : negated conditional → KILLED
2. startsWithAny : negated conditional → KILLED
        if (isEmpty(sequence) || ArrayUtils.isEmpty(searchStrings)) {
8438 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8439
        }
8440 3 1. startsWithAny : changed conditional boundary → KILLED
2. startsWithAny : Changed increment from 1 to -1 → KILLED
3. startsWithAny : negated conditional → KILLED
        for (final CharSequence searchString : searchStrings) {
8441 1 1. startsWithAny : negated conditional → KILLED
            if (startsWith(sequence, searchString)) {
8442 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
8443
            }
8444
        }
8445 1 1. startsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
8446
    }
8447
8448
    // endsWith
8449
    //-----------------------------------------------------------------------
8450
8451
    /**
8452
     * <p>Check if a CharSequence ends with a specified suffix.</p>
8453
     *
8454
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8455
     * references are considered to be equal. The comparison is case sensitive.</p>
8456
     *
8457
     * <pre>
8458
     * StringUtils.endsWith(null, null)      = true
8459
     * StringUtils.endsWith(null, "def")     = false
8460
     * StringUtils.endsWith("abcdef", null)  = false
8461
     * StringUtils.endsWith("abcdef", "def") = true
8462
     * StringUtils.endsWith("ABCDEF", "def") = false
8463
     * StringUtils.endsWith("ABCDEF", "cde") = false
8464
     * StringUtils.endsWith("ABCDEF", "")    = true
8465
     * </pre>
8466
     *
8467
     * @see java.lang.String#endsWith(String)
8468
     * @param str  the CharSequence to check, may be null
8469
     * @param suffix the suffix to find, may be null
8470
     * @return {@code true} if the CharSequence ends with the suffix, case sensitive, or
8471
     *  both {@code null}
8472
     * @since 2.4
8473
     * @since 3.0 Changed signature from endsWith(String, String) to endsWith(CharSequence, CharSequence)
8474
     */
8475
    public static boolean endsWith(final CharSequence str, final CharSequence suffix) {
8476 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return endsWith(str, suffix, false);
8477
    }
8478
8479
    /**
8480
     * <p>Case insensitive check if a CharSequence ends with a specified suffix.</p>
8481
     *
8482
     * <p>{@code null}s are handled without exceptions. Two {@code null}
8483
     * references are considered to be equal. The comparison is case insensitive.</p>
8484
     *
8485
     * <pre>
8486
     * StringUtils.endsWithIgnoreCase(null, null)      = true
8487
     * StringUtils.endsWithIgnoreCase(null, "def")     = false
8488
     * StringUtils.endsWithIgnoreCase("abcdef", null)  = false
8489
     * StringUtils.endsWithIgnoreCase("abcdef", "def") = true
8490
     * StringUtils.endsWithIgnoreCase("ABCDEF", "def") = true
8491
     * StringUtils.endsWithIgnoreCase("ABCDEF", "cde") = false
8492
     * </pre>
8493
     *
8494
     * @see java.lang.String#endsWith(String)
8495
     * @param str  the CharSequence to check, may be null
8496
     * @param suffix the suffix to find, may be null
8497
     * @return {@code true} if the CharSequence ends with the suffix, case insensitive, or
8498
     *  both {@code null}
8499
     * @since 2.4
8500
     * @since 3.0 Changed signature from endsWithIgnoreCase(String, String) to endsWithIgnoreCase(CharSequence, CharSequence)
8501
     */
8502
    public static boolean endsWithIgnoreCase(final CharSequence str, final CharSequence suffix) {
8503 1 1. endsWithIgnoreCase : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return endsWith(str, suffix, true);
8504
    }
8505
8506
    /**
8507
     * <p>Check if a CharSequence ends with a specified suffix (optionally case insensitive).</p>
8508
     *
8509
     * @see java.lang.String#endsWith(String)
8510
     * @param str  the CharSequence to check, may be null
8511
     * @param suffix the suffix to find, may be null
8512
     * @param ignoreCase indicates whether the compare should ignore case
8513
     *  (case insensitive) or not.
8514
     * @return {@code true} if the CharSequence starts with the prefix or
8515
     *  both {@code null}
8516
     */
8517
    private static boolean endsWith(final CharSequence str, final CharSequence suffix, final boolean ignoreCase) {
8518 2 1. endsWith : negated conditional → KILLED
2. endsWith : negated conditional → KILLED
        if (str == null || suffix == null) {
8519 3 1. endsWith : negated conditional → KILLED
2. endsWith : negated conditional → KILLED
3. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return str == null && suffix == null;
8520
        }
8521 2 1. endsWith : changed conditional boundary → SURVIVED
2. endsWith : negated conditional → KILLED
        if (suffix.length() > str.length()) {
8522 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8523
        }
8524 1 1. endsWith : Replaced integer subtraction with addition → KILLED
        final int strOffset = str.length() - suffix.length();
8525 1 1. endsWith : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return CharSequenceUtils.regionMatches(str, ignoreCase, strOffset, suffix, 0, suffix.length());
8526
    }
8527
8528
    /**
8529
     * <p>
8530
     * Similar to <a
8531
     * href="http://www.w3.org/TR/xpath/#function-normalize-space">http://www.w3.org/TR/xpath/#function-normalize
8532
     * -space</a>
8533
     * </p>
8534
     * <p>
8535
     * The function returns the argument string with whitespace normalized by using
8536
     * <code>{@link #trim(String)}</code> to remove leading and trailing whitespace
8537
     * and then replacing sequences of whitespace characters by a single space.
8538
     * </p>
8539
     * In XML Whitespace characters are the same as those allowed by the <a
8540
     * href="http://www.w3.org/TR/REC-xml/#NT-S">S</a> production, which is S ::= (#x20 | #x9 | #xD | #xA)+
8541
     * <p>
8542
     * Java's regexp pattern \s defines whitespace as [ \t\n\x0B\f\r]
8543
     *
8544
     * <p>For reference:</p>
8545
     * <ul>
8546
     * <li>\x0B = vertical tab</li>
8547
     * <li>\f = #xC = form feed</li>
8548
     * <li>#x20 = space</li>
8549
     * <li>#x9 = \t</li>
8550
     * <li>#xA = \n</li>
8551
     * <li>#xD = \r</li>
8552
     * </ul>
8553
     *
8554
     * <p>
8555
     * The difference is that Java's whitespace includes vertical tab and form feed, which this functional will also
8556
     * normalize. Additionally <code>{@link #trim(String)}</code> removes control characters (char &lt;= 32) from both
8557
     * ends of this String.
8558
     * </p>
8559
     *
8560
     * @see Pattern
8561
     * @see #trim(String)
8562
     * @see <a
8563
     *      href="http://www.w3.org/TR/xpath/#function-normalize-space">http://www.w3.org/TR/xpath/#function-normalize-space</a>
8564
     * @param str the source String to normalize whitespaces from, may be null
8565
     * @return the modified string with whitespace normalized, {@code null} if null String input
8566
     *
8567
     * @since 3.0
8568
     */
8569
    public static String normalizeSpace(final String str) {
8570
        // LANG-1020: Improved performance significantly by normalizing manually instead of using regex
8571
        // See https://github.com/librucha/commons-lang-normalizespaces-benchmark for performance test
8572 1 1. normalizeSpace : negated conditional → KILLED
        if (isEmpty(str)) {
8573 1 1. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8574
        }
8575
        final int size = str.length();
8576
        final char[] newChars = new char[size];
8577
        int count = 0;
8578
        int whitespacesCount = 0;
8579
        boolean startWhitespaces = true;
8580 3 1. normalizeSpace : changed conditional boundary → KILLED
2. normalizeSpace : Changed increment from 1 to -1 → KILLED
3. normalizeSpace : negated conditional → KILLED
        for (int i = 0; i < size; i++) {
8581
            final char actualChar = str.charAt(i);
8582
            final boolean isWhitespace = Character.isWhitespace(actualChar);
8583 1 1. normalizeSpace : negated conditional → KILLED
            if (!isWhitespace) {
8584
                startWhitespaces = false;
8585 2 1. normalizeSpace : Changed increment from 1 to -1 → KILLED
2. normalizeSpace : negated conditional → KILLED
                newChars[count++] = (actualChar == 160 ? 32 : actualChar);
8586
                whitespacesCount = 0;
8587
            } else {
8588 2 1. normalizeSpace : negated conditional → KILLED
2. normalizeSpace : negated conditional → KILLED
                if (whitespacesCount == 0 && !startWhitespaces) {
8589 1 1. normalizeSpace : Changed increment from 1 to -1 → KILLED
                    newChars[count++] = SPACE.charAt(0);
8590
                }
8591 1 1. normalizeSpace : Changed increment from 1 to -1 → SURVIVED
                whitespacesCount++;
8592
            }
8593
        }
8594 1 1. normalizeSpace : negated conditional → KILLED
        if (startWhitespaces) {
8595 1 1. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return EMPTY;
8596
        }
8597 4 1. normalizeSpace : Replaced integer subtraction with addition → SURVIVED
2. normalizeSpace : changed conditional boundary → KILLED
3. normalizeSpace : negated conditional → KILLED
4. normalizeSpace : mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(newChars, 0, count - (whitespacesCount > 0 ? 1 : 0)).trim();
8598
    }
8599
8600
    /**
8601
     * <p>Check if a CharSequence ends with any of the provided case-sensitive suffixes.</p>
8602
     *
8603
     * <pre>
8604
     * StringUtils.endsWithAny(null, null)      = false
8605
     * StringUtils.endsWithAny(null, new String[] {"abc"})  = false
8606
     * StringUtils.endsWithAny("abcxyz", null)     = false
8607
     * StringUtils.endsWithAny("abcxyz", new String[] {""}) = true
8608
     * StringUtils.endsWithAny("abcxyz", new String[] {"xyz"}) = true
8609
     * StringUtils.endsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
8610
     * StringUtils.endsWithAny("abcXYZ", "def", "XYZ") = true
8611
     * StringUtils.endsWithAny("abcXYZ", "def", "xyz") = false
8612
     * </pre>
8613
     *
8614
     * @param sequence  the CharSequence to check, may be null
8615
     * @param searchStrings the case-sensitive CharSequences to find, may be empty or contain {@code null}
8616
     * @see StringUtils#endsWith(CharSequence, CharSequence)
8617
     * @return {@code true} if the input {@code sequence} is {@code null} AND no {@code searchStrings} are provided, or
8618
     *   the input {@code sequence} ends in any of the provided case-sensitive {@code searchStrings}.
8619
     * @since 3.0
8620
     */
8621
    public static boolean endsWithAny(final CharSequence sequence, final CharSequence... searchStrings) {
8622 2 1. endsWithAny : negated conditional → KILLED
2. endsWithAny : negated conditional → KILLED
        if (isEmpty(sequence) || ArrayUtils.isEmpty(searchStrings)) {
8623 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
            return false;
8624
        }
8625 3 1. endsWithAny : changed conditional boundary → KILLED
2. endsWithAny : Changed increment from 1 to -1 → KILLED
3. endsWithAny : negated conditional → KILLED
        for (final CharSequence searchString : searchStrings) {
8626 1 1. endsWithAny : negated conditional → KILLED
            if (endsWith(sequence, searchString)) {
8627 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
                return true;
8628
            }
8629
        }
8630 1 1. endsWithAny : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED
        return false;
8631
    }
8632
8633
    /**
8634
     * Appends the suffix to the end of the string if the string does not
8635
     * already end with the suffix.
8636
     *
8637
     * @param str The string.
8638
     * @param suffix The suffix to append to the end of the string.
8639
     * @param ignoreCase Indicates whether the compare should ignore case.
8640
     * @param suffixes Additional suffixes that are valid terminators (optional).
8641
     *
8642
     * @return A new String if suffix was appended, the same string otherwise.
8643
     */
8644
    private static String appendIfMissing(final String str, final CharSequence suffix, final boolean ignoreCase, final CharSequence... suffixes) {
8645 3 1. appendIfMissing : negated conditional → KILLED
2. appendIfMissing : negated conditional → KILLED
3. appendIfMissing : negated conditional → KILLED
        if (str == null || isEmpty(suffix) || endsWith(str, suffix, ignoreCase)) {
8646 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8647
        }
8648 3 1. appendIfMissing : changed conditional boundary → SURVIVED
2. appendIfMissing : negated conditional → KILLED
3. appendIfMissing : negated conditional → KILLED
        if (suffixes != null && suffixes.length > 0) {
8649 3 1. appendIfMissing : changed conditional boundary → KILLED
2. appendIfMissing : Changed increment from 1 to -1 → KILLED
3. appendIfMissing : negated conditional → KILLED
            for (final CharSequence s : suffixes) {
8650 1 1. appendIfMissing : negated conditional → KILLED
                if (endsWith(str, s, ignoreCase)) {
8651 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
                    return str;
8652
                }
8653
            }
8654
        }
8655 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str + suffix.toString();
8656
    }
8657
8658
    /**
8659
     * Appends the suffix to the end of the string if the string does not
8660
     * already end with any of the suffixes.
8661
     *
8662
     * <pre>
8663
     * StringUtils.appendIfMissing(null, null) = null
8664
     * StringUtils.appendIfMissing("abc", null) = "abc"
8665
     * StringUtils.appendIfMissing("", "xyz") = "xyz"
8666
     * StringUtils.appendIfMissing("abc", "xyz") = "abcxyz"
8667
     * StringUtils.appendIfMissing("abcxyz", "xyz") = "abcxyz"
8668
     * StringUtils.appendIfMissing("abcXYZ", "xyz") = "abcXYZxyz"
8669
     * </pre>
8670
     * <p>With additional suffixes,</p>
8671
     * <pre>
8672
     * StringUtils.appendIfMissing(null, null, null) = null
8673
     * StringUtils.appendIfMissing("abc", null, null) = "abc"
8674
     * StringUtils.appendIfMissing("", "xyz", null) = "xyz"
8675
     * StringUtils.appendIfMissing("abc", "xyz", new CharSequence[]{null}) = "abcxyz"
8676
     * StringUtils.appendIfMissing("abc", "xyz", "") = "abc"
8677
     * StringUtils.appendIfMissing("abc", "xyz", "mno") = "abcxyz"
8678
     * StringUtils.appendIfMissing("abcxyz", "xyz", "mno") = "abcxyz"
8679
     * StringUtils.appendIfMissing("abcmno", "xyz", "mno") = "abcmno"
8680
     * StringUtils.appendIfMissing("abcXYZ", "xyz", "mno") = "abcXYZxyz"
8681
     * StringUtils.appendIfMissing("abcMNO", "xyz", "mno") = "abcMNOxyz"
8682
     * </pre>
8683
     *
8684
     * @param str The string.
8685
     * @param suffix The suffix to append to the end of the string.
8686
     * @param suffixes Additional suffixes that are valid terminators.
8687
     *
8688
     * @return A new String if suffix was appended, the same string otherwise.
8689
     *
8690
     * @since 3.2
8691
     */
8692
    public static String appendIfMissing(final String str, final CharSequence suffix, final CharSequence... suffixes) {
8693 1 1. appendIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return appendIfMissing(str, suffix, false, suffixes);
8694
    }
8695
8696
    /**
8697
     * Appends the suffix to the end of the string if the string does not
8698
     * already end, case insensitive, with any of the suffixes.
8699
     *
8700
     * <pre>
8701
     * StringUtils.appendIfMissingIgnoreCase(null, null) = null
8702
     * StringUtils.appendIfMissingIgnoreCase("abc", null) = "abc"
8703
     * StringUtils.appendIfMissingIgnoreCase("", "xyz") = "xyz"
8704
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz") = "abcxyz"
8705
     * StringUtils.appendIfMissingIgnoreCase("abcxyz", "xyz") = "abcxyz"
8706
     * StringUtils.appendIfMissingIgnoreCase("abcXYZ", "xyz") = "abcXYZ"
8707
     * </pre>
8708
     * <p>With additional suffixes,</p>
8709
     * <pre>
8710
     * StringUtils.appendIfMissingIgnoreCase(null, null, null) = null
8711
     * StringUtils.appendIfMissingIgnoreCase("abc", null, null) = "abc"
8712
     * StringUtils.appendIfMissingIgnoreCase("", "xyz", null) = "xyz"
8713
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", new CharSequence[]{null}) = "abcxyz"
8714
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", "") = "abc"
8715
     * StringUtils.appendIfMissingIgnoreCase("abc", "xyz", "mno") = "axyz"
8716
     * StringUtils.appendIfMissingIgnoreCase("abcxyz", "xyz", "mno") = "abcxyz"
8717
     * StringUtils.appendIfMissingIgnoreCase("abcmno", "xyz", "mno") = "abcmno"
8718
     * StringUtils.appendIfMissingIgnoreCase("abcXYZ", "xyz", "mno") = "abcXYZ"
8719
     * StringUtils.appendIfMissingIgnoreCase("abcMNO", "xyz", "mno") = "abcMNO"
8720
     * </pre>
8721
     *
8722
     * @param str The string.
8723
     * @param suffix The suffix to append to the end of the string.
8724
     * @param suffixes Additional suffixes that are valid terminators.
8725
     *
8726
     * @return A new String if suffix was appended, the same string otherwise.
8727
     *
8728
     * @since 3.2
8729
     */
8730
    public static String appendIfMissingIgnoreCase(final String str, final CharSequence suffix, final CharSequence... suffixes) {
8731 1 1. appendIfMissingIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return appendIfMissing(str, suffix, true, suffixes);
8732
    }
8733
8734
    /**
8735
     * Prepends the prefix to the start of the string if the string does not
8736
     * already start with any of the prefixes.
8737
     *
8738
     * @param str The string.
8739
     * @param prefix The prefix to prepend to the start of the string.
8740
     * @param ignoreCase Indicates whether the compare should ignore case.
8741
     * @param prefixes Additional prefixes that are valid (optional).
8742
     *
8743
     * @return A new String if prefix was prepended, the same string otherwise.
8744
     */
8745
    private static String prependIfMissing(final String str, final CharSequence prefix, final boolean ignoreCase, final CharSequence... prefixes) {
8746 3 1. prependIfMissing : negated conditional → KILLED
2. prependIfMissing : negated conditional → KILLED
3. prependIfMissing : negated conditional → KILLED
        if (str == null || isEmpty(prefix) || startsWith(str, prefix, ignoreCase)) {
8747 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8748
        }
8749 3 1. prependIfMissing : changed conditional boundary → SURVIVED
2. prependIfMissing : negated conditional → KILLED
3. prependIfMissing : negated conditional → KILLED
        if (prefixes != null && prefixes.length > 0) {
8750 3 1. prependIfMissing : changed conditional boundary → KILLED
2. prependIfMissing : Changed increment from 1 to -1 → KILLED
3. prependIfMissing : negated conditional → KILLED
            for (final CharSequence p : prefixes) {
8751 1 1. prependIfMissing : negated conditional → KILLED
                if (startsWith(str, p, ignoreCase)) {
8752 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
                    return str;
8753
                }
8754
            }
8755
        }
8756 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prefix.toString() + str;
8757
    }
8758
8759
    /**
8760
     * Prepends the prefix to the start of the string if the string does not
8761
     * already start with any of the prefixes.
8762
     *
8763
     * <pre>
8764
     * StringUtils.prependIfMissing(null, null) = null
8765
     * StringUtils.prependIfMissing("abc", null) = "abc"
8766
     * StringUtils.prependIfMissing("", "xyz") = "xyz"
8767
     * StringUtils.prependIfMissing("abc", "xyz") = "xyzabc"
8768
     * StringUtils.prependIfMissing("xyzabc", "xyz") = "xyzabc"
8769
     * StringUtils.prependIfMissing("XYZabc", "xyz") = "xyzXYZabc"
8770
     * </pre>
8771
     * <p>With additional prefixes,</p>
8772
     * <pre>
8773
     * StringUtils.prependIfMissing(null, null, null) = null
8774
     * StringUtils.prependIfMissing("abc", null, null) = "abc"
8775
     * StringUtils.prependIfMissing("", "xyz", null) = "xyz"
8776
     * StringUtils.prependIfMissing("abc", "xyz", new CharSequence[]{null}) = "xyzabc"
8777
     * StringUtils.prependIfMissing("abc", "xyz", "") = "abc"
8778
     * StringUtils.prependIfMissing("abc", "xyz", "mno") = "xyzabc"
8779
     * StringUtils.prependIfMissing("xyzabc", "xyz", "mno") = "xyzabc"
8780
     * StringUtils.prependIfMissing("mnoabc", "xyz", "mno") = "mnoabc"
8781
     * StringUtils.prependIfMissing("XYZabc", "xyz", "mno") = "xyzXYZabc"
8782
     * StringUtils.prependIfMissing("MNOabc", "xyz", "mno") = "xyzMNOabc"
8783
     * </pre>
8784
     *
8785
     * @param str The string.
8786
     * @param prefix The prefix to prepend to the start of the string.
8787
     * @param prefixes Additional prefixes that are valid.
8788
     *
8789
     * @return A new String if prefix was prepended, the same string otherwise.
8790
     *
8791
     * @since 3.2
8792
     */
8793
    public static String prependIfMissing(final String str, final CharSequence prefix, final CharSequence... prefixes) {
8794 1 1. prependIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prependIfMissing(str, prefix, false, prefixes);
8795
    }
8796
8797
    /**
8798
     * Prepends the prefix to the start of the string if the string does not
8799
     * already start, case insensitive, with any of the prefixes.
8800
     *
8801
     * <pre>
8802
     * StringUtils.prependIfMissingIgnoreCase(null, null) = null
8803
     * StringUtils.prependIfMissingIgnoreCase("abc", null) = "abc"
8804
     * StringUtils.prependIfMissingIgnoreCase("", "xyz") = "xyz"
8805
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz") = "xyzabc"
8806
     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz") = "xyzabc"
8807
     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz") = "XYZabc"
8808
     * </pre>
8809
     * <p>With additional prefixes,</p>
8810
     * <pre>
8811
     * StringUtils.prependIfMissingIgnoreCase(null, null, null) = null
8812
     * StringUtils.prependIfMissingIgnoreCase("abc", null, null) = "abc"
8813
     * StringUtils.prependIfMissingIgnoreCase("", "xyz", null) = "xyz"
8814
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", new CharSequence[]{null}) = "xyzabc"
8815
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "") = "abc"
8816
     * StringUtils.prependIfMissingIgnoreCase("abc", "xyz", "mno") = "xyzabc"
8817
     * StringUtils.prependIfMissingIgnoreCase("xyzabc", "xyz", "mno") = "xyzabc"
8818
     * StringUtils.prependIfMissingIgnoreCase("mnoabc", "xyz", "mno") = "mnoabc"
8819
     * StringUtils.prependIfMissingIgnoreCase("XYZabc", "xyz", "mno") = "XYZabc"
8820
     * StringUtils.prependIfMissingIgnoreCase("MNOabc", "xyz", "mno") = "MNOabc"
8821
     * </pre>
8822
     *
8823
     * @param str The string.
8824
     * @param prefix The prefix to prepend to the start of the string.
8825
     * @param prefixes Additional prefixes that are valid (optional).
8826
     *
8827
     * @return A new String if prefix was prepended, the same string otherwise.
8828
     *
8829
     * @since 3.2
8830
     */
8831
    public static String prependIfMissingIgnoreCase(final String str, final CharSequence prefix, final CharSequence... prefixes) {
8832 1 1. prependIfMissingIgnoreCase : mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return prependIfMissing(str, prefix, true, prefixes);
8833
    }
8834
8835
    /**
8836
     * Converts a <code>byte[]</code> to a String using the specified character encoding.
8837
     *
8838
     * @param bytes
8839
     *            the byte array to read from
8840
     * @param charsetName
8841
     *            the encoding to use, if null then use the platform default
8842
     * @return a new String
8843
     * @throws UnsupportedEncodingException
8844
     *             If the named charset is not supported
8845
     * @throws NullPointerException
8846
     *             if the input is null
8847
     * @deprecated use {@link StringUtils#toEncodedString(byte[], Charset)} instead of String constants in your code
8848
     * @since 3.1
8849
     */
8850
    @Deprecated
8851
    public static String toString(final byte[] bytes, final String charsetName) throws UnsupportedEncodingException {
8852 2 1. toString : negated conditional → KILLED
2. toString : mutated return of Object value for org/apache/commons/lang3/StringUtils::toString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return charsetName != null ? new String(bytes, charsetName) : new String(bytes, Charset.defaultCharset());
8853
    }
8854
8855
    /**
8856
     * Converts a <code>byte[]</code> to a String using the specified character encoding.
8857
     * 
8858
     * @param bytes
8859
     *            the byte array to read from
8860
     * @param charset
8861
     *            the encoding to use, if null then use the platform default
8862
     * @return a new String
8863
     * @throws NullPointerException
8864
     *             if {@code bytes} is null
8865
     * @since 3.2
8866
     * @since 3.3 No longer throws {@link UnsupportedEncodingException}.
8867
     */
8868
    public static String toEncodedString(final byte[] bytes, final Charset charset) {
8869 2 1. toEncodedString : negated conditional → KILLED
2. toEncodedString : mutated return of Object value for org/apache/commons/lang3/StringUtils::toEncodedString to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return new String(bytes, charset != null ? charset : Charset.defaultCharset());
8870
    }
8871
8872
    /**
8873
     * <p>
8874
     * Wraps a string with a char.
8875
     * </p>
8876
     * 
8877
     * <pre>
8878
     * StringUtils.wrap(null, *)        = null
8879
     * StringUtils.wrap("", *)          = ""
8880
     * StringUtils.wrap("ab", '\0')     = "ab"
8881
     * StringUtils.wrap("ab", 'x')      = "xabx"
8882
     * StringUtils.wrap("ab", '\'')     = "'ab'"
8883
     * StringUtils.wrap("\"ab\"", '\"') = "\"\"ab\"\""
8884
     * </pre>
8885
     * 
8886
     * @param str
8887
     *            the string to be wrapped, may be {@code null}
8888
     * @param wrapWith
8889
     *            the char that will wrap {@code str}
8890
     * @return the wrapped string, or {@code null} if {@code str==null}
8891
     * @since 3.4
8892
     */
8893
    public static String wrap(final String str, final char wrapWith) {
8894
8895 2 1. wrap : negated conditional → KILLED
2. wrap : negated conditional → KILLED
        if (isEmpty(str) || wrapWith == '\0') {
8896 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8897
        }
8898
8899 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return wrapWith + str + wrapWith;
8900
    }
8901
8902
    /**
8903
     * <p>
8904
     * Wraps a String with another String.
8905
     * </p>
8906
     * 
8907
     * <p>
8908
     * A {@code null} input String returns {@code null}.
8909
     * </p>
8910
     * 
8911
     * <pre>
8912
     * StringUtils.wrap(null, *)         = null
8913
     * StringUtils.wrap("", *)           = ""
8914
     * StringUtils.wrap("ab", null)      = "ab"
8915
     * StringUtils.wrap("ab", "x")       = "xabx"
8916
     * StringUtils.wrap("ab", "\"")      = "\"ab\""
8917
     * StringUtils.wrap("\"ab\"", "\"")  = "\"\"ab\"\""
8918
     * StringUtils.wrap("ab", "'")       = "'ab'"
8919
     * StringUtils.wrap("'abcd'", "'")   = "''abcd''"
8920
     * StringUtils.wrap("\"abcd\"", "'") = "'\"abcd\"'"
8921
     * StringUtils.wrap("'abcd'", "\"")  = "\"'abcd'\""
8922
     * </pre>
8923
     * 
8924
     * @param str
8925
     *            the String to be wrapper, may be null
8926
     * @param wrapWith
8927
     *            the String that will wrap str
8928
     * @return wrapped String, {@code null} if null String input
8929
     * @since 3.4
8930
     */
8931
    public static String wrap(final String str, final String wrapWith) {
8932
8933 2 1. wrap : negated conditional → KILLED
2. wrap : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapWith)) {
8934 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8935
        }
8936
8937 1 1. wrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return wrapWith.concat(str).concat(wrapWith);
8938
    }
8939
8940
    /**
8941
     * <p>
8942
     * Wraps a string with a char if that char is missing from the start or end of the given string.
8943
     * </p>
8944
     * 
8945
     * <pre>
8946
     * StringUtils.wrap(null, *)        = null
8947
     * StringUtils.wrap("", *)          = ""
8948
     * StringUtils.wrap("ab", '\0')     = "ab"
8949
     * StringUtils.wrap("ab", 'x')      = "xabx"
8950
     * StringUtils.wrap("ab", '\'')     = "'ab'"
8951
     * StringUtils.wrap("\"ab\"", '\"') = "\"ab\""
8952
     * StringUtils.wrap("/", '/')  = "/"
8953
     * StringUtils.wrap("a/b/c", '/')  = "/a/b/c/"
8954
     * StringUtils.wrap("/a/b/c", '/')  = "/a/b/c/"
8955
     * StringUtils.wrap("a/b/c/", '/')  = "/a/b/c/"
8956
     * </pre>
8957
     * 
8958
     * @param str
8959
     *            the string to be wrapped, may be {@code null}
8960
     * @param wrapWith
8961
     *            the char that will wrap {@code str}
8962
     * @return the wrapped string, or {@code null} if {@code str==null}
8963
     * @since 3.5
8964
     */
8965
    public static String wrapIfMissing(final String str, final char wrapWith) {
8966 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (isEmpty(str) || wrapWith == '\0') {
8967 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
8968
        }
8969 1 1. wrapIfMissing : Replaced integer addition with subtraction → KILLED
        final StringBuilder builder = new StringBuilder(str.length() + 2);
8970 1 1. wrapIfMissing : negated conditional → KILLED
        if (str.charAt(0) != wrapWith) {
8971
            builder.append(wrapWith);
8972
        }
8973
        builder.append(str);
8974 2 1. wrapIfMissing : Replaced integer subtraction with addition → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (str.charAt(str.length() - 1) != wrapWith) {
8975
            builder.append(wrapWith);
8976
        }
8977 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
8978
    }
8979
8980
    /**
8981
     * <p>
8982
     * Wraps a string with a string if that string is missing from the start or end of the given string.
8983
     * </p>
8984
     * 
8985
     * <pre>
8986
     * StringUtils.wrap(null, *)         = null
8987
     * StringUtils.wrap("", *)           = ""
8988
     * StringUtils.wrap("ab", null)      = "ab"
8989
     * StringUtils.wrap("ab", "x")       = "xabx"
8990
     * StringUtils.wrap("ab", "\"")      = "\"ab\""
8991
     * StringUtils.wrap("\"ab\"", "\"")  = "\"ab\""
8992
     * StringUtils.wrap("ab", "'")       = "'ab'"
8993
     * StringUtils.wrap("'abcd'", "'")   = "'abcd'"
8994
     * StringUtils.wrap("\"abcd\"", "'") = "'\"abcd\"'"
8995
     * StringUtils.wrap("'abcd'", "\"")  = "\"'abcd'\""
8996
     * StringUtils.wrap("/", "/")  = "/"
8997
     * StringUtils.wrap("a/b/c", "/")  = "/a/b/c/"
8998
     * StringUtils.wrap("/a/b/c", "/")  = "/a/b/c/"
8999
     * StringUtils.wrap("a/b/c/", "/")  = "/a/b/c/"
9000
     * </pre>
9001
     * 
9002
     * @param str
9003
     *            the string to be wrapped, may be {@code null}
9004
     * @param wrapWith
9005
     *            the char that will wrap {@code str}
9006
     * @return the wrapped string, or {@code null} if {@code str==null}
9007
     * @since 3.5
9008
     */
9009
    public static String wrapIfMissing(final String str, final String wrapWith) {
9010 2 1. wrapIfMissing : negated conditional → KILLED
2. wrapIfMissing : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapWith)) {
9011 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9012
        }
9013 2 1. wrapIfMissing : Replaced integer addition with subtraction → SURVIVED
2. wrapIfMissing : Replaced integer addition with subtraction → SURVIVED
        final StringBuilder builder = new StringBuilder(str.length() + wrapWith.length() + wrapWith.length());
9014 1 1. wrapIfMissing : negated conditional → KILLED
        if (!str.startsWith(wrapWith)) {
9015
            builder.append(wrapWith);
9016
        }
9017
        builder.append(str);
9018 1 1. wrapIfMissing : negated conditional → KILLED
        if (!str.endsWith(wrapWith)) {
9019
            builder.append(wrapWith);
9020
        }
9021 1 1. wrapIfMissing : mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return builder.toString();
9022
    }
9023
9024
    /**
9025
     * <p>
9026
     * Unwraps a given string from anther string.
9027
     * </p>
9028
     *
9029
     * <pre>
9030
     * StringUtils.unwrap(null, null)         = null
9031
     * StringUtils.unwrap(null, "")           = null
9032
     * StringUtils.unwrap(null, "1")          = null
9033
     * StringUtils.unwrap("\'abc\'", "\'")    = "abc"
9034
     * StringUtils.unwrap("\"abc\"", "\"")    = "abc"
9035
     * StringUtils.unwrap("AABabcBAA", "AA")  = "BabcB"
9036
     * StringUtils.unwrap("A", "#")           = "A"
9037
     * StringUtils.unwrap("#A", "#")          = "#A"
9038
     * StringUtils.unwrap("A#", "#")          = "A#"
9039
     * </pre>
9040
     *
9041
     * @param str
9042
     *          the String to be unwrapped, can be null
9043
     * @param wrapToken
9044
     *          the String used to unwrap
9045
     * @return unwrapped String or the original string 
9046
     *          if it is not quoted properly with the wrapToken
9047
     * @since 3.6
9048
     */
9049
    public static String unwrap(final String str, final String wrapToken) {
9050 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (isEmpty(str) || isEmpty(wrapToken)) {
9051 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9052
        }
9053
9054 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (startsWith(str, wrapToken) && endsWith(str, wrapToken)) {
9055
            final int startIndex = str.indexOf(wrapToken);
9056
            final int endIndex = str.lastIndexOf(wrapToken);
9057
            final int wrapLength = wrapToken.length();
9058 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
            if (startIndex != -1 && endIndex != -1) {
9059 2 1. unwrap : Replaced integer addition with subtraction → KILLED
2. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(startIndex + wrapLength, endIndex);
9060
            }
9061
        }
9062
9063 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
9064
    }
9065
9066
    /**
9067
     * <p>
9068
     * Unwraps a given string from a character.
9069
     * </p>
9070
     * 
9071
     * <pre>
9072
     * StringUtils.unwrap(null, null)         = null
9073
     * StringUtils.unwrap(null, '\0')         = null
9074
     * StringUtils.unwrap(null, '1')          = null
9075
     * StringUtils.unwrap("\'abc\'", '\'')    = "abc"
9076
     * StringUtils.unwrap("AABabcBAA", 'A')  = "ABabcBA"
9077
     * StringUtils.unwrap("A", '#')           = "A"
9078
     * StringUtils.unwrap("#A", '#')          = "#A"
9079
     * StringUtils.unwrap("A#", '#')          = "A#"
9080
     * </pre>
9081
     *
9082
     * @param str
9083
     *          the String to be unwrapped, can be null
9084
     * @param wrapChar
9085
     *          the character used to unwrap
9086
     * @return unwrapped String or the original string 
9087
     *          if it is not quoted properly with the wrapChar
9088
     * @since 3.6
9089
     */
9090
    public static String unwrap(final String str, final char wrapChar) {
9091 2 1. unwrap : negated conditional → KILLED
2. unwrap : negated conditional → KILLED
        if (isEmpty(str) || wrapChar == '\0') {
9092 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return str;
9093
        }
9094
9095 3 1. unwrap : Replaced integer subtraction with addition → KILLED
2. unwrap : negated conditional → KILLED
3. unwrap : negated conditional → KILLED
        if (str.charAt(0) == wrapChar && str.charAt(str.length() - 1) == wrapChar) {
9096
            final int startIndex = 0;
9097 1 1. unwrap : Replaced integer subtraction with addition → KILLED
            final int endIndex = str.length() - 1;
9098 1 1. unwrap : negated conditional → KILLED
            if (startIndex != -1 && endIndex != -1) {
9099 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
                return str.substring(startIndex + 1, endIndex);
9100
            }
9101
        }
9102
9103 1 1. unwrap : mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return str;
9104
    }
9105
    
9106
    
9107
    /**
9108
     * <p>Converts a {@code CharSequence} into an array of code points.</p>
9109
     * 
9110
     * <p>Valid pairs of surrogate code units will be converted into a single supplementary
9111
     * code point. Isolated surrogate code units (i.e. a high surrogate not followed by a low surrogate or
9112
     * a low surrogate not preceeded by a high surrogate) will be returned as-is.</p>
9113
     * 
9114
     * <pre>
9115
     * StringUtils.toCodePoints(null)   =  null
9116
     * StringUtils.toCodePoints("")     =  []  // empty array
9117
     * </pre>
9118
     * 
9119
     * @param str the character sequence to convert
9120
     * @return an array of code points
9121
     * @since 3.6
9122
     */
9123
    public static int[] toCodePoints(CharSequence str) {
9124 1 1. toCodePoints : negated conditional → KILLED
        if (str == null) {
9125 1 1. toCodePoints : mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return null;
9126
        }
9127 1 1. toCodePoints : negated conditional → KILLED
        if (str.length() == 0) {
9128 1 1. toCodePoints : mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED
            return ArrayUtils.EMPTY_INT_ARRAY;
9129
        }
9130
        
9131
        String s = str.toString();
9132
        int[] result = new int[s.codePointCount(0, s.length())];
9133
        int index = 0;
9134 3 1. toCodePoints : changed conditional boundary → KILLED
2. toCodePoints : Changed increment from 1 to -1 → KILLED
3. toCodePoints : negated conditional → KILLED
        for (int i = 0; i < result.length; i++) {
9135
            result[i] = s.codePointAt(index);
9136 1 1. toCodePoints : Replaced integer addition with subtraction → KILLED
            index += Character.charCount(result[i]);
9137
        }     
9138 1 1. toCodePoints : mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED
        return result;
9139
    }    
9140
}

Mutations

210

1.1
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : isEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

229

1.1
Location : isNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

250

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

251

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

253

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

254

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

255

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

258

1.1
Location : isAnyEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

280

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

281

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

283

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

284

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

285

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

288

1.1
Location : isAnyNotEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

310

1.1
Location : isNoneEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNoneEmpty
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneEmpty(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

333

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuilders(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuilders(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

334

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuilders(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

336

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuilders(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuilders(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuilders(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

337

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuilders(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

338

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuilders(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

341

1.1
Location : isBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuilders(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

364

1.1
Location : isNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

389

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

390

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

392

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

393

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

394

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

397

1.1
Location : isAnyBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

422

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

423

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

425

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
changed conditional boundary → KILLED

2.2
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

426

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

427

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

430

1.1
Location : isAnyNotBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsAnyNotBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

455

1.1
Location : isNoneBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
negated conditional → KILLED

2.2
Location : isNoneBlank
Killed by : org.apache.commons.lang3.StringUtilsEmptyBlankTest.testIsNoneBlank(org.apache.commons.lang3.StringUtilsEmptyBlankTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

484

1.1
Location : trim
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrim(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trim
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrim(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trim to ( if (x != null) null else throw new RuntimeException ) → KILLED

511

1.1
Location : trimToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToNull(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trimToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToNull(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

536

1.1
Location : trimToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToEmpty(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : trimToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testTrimToEmpty(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::trimToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

571

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

634

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

637

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

640

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

641

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

643

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

644

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

646

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

647

1.1
Location : truncate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

648

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

650

1.1
Location : truncate
Killed by : org.apache.commons.lang3.StringUtilsTest.testTruncate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::truncate to ( if (x != null) null else throw new RuntimeException ) → KILLED

678

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStrip_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

705

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

706

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

709

1.1
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripToNull
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToNull_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToNull to ( if (x != null) null else throw new RuntimeException ) → KILLED

735

1.1
Location : stripToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripToEmpty
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripToEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

765

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

766

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

769

1.1
Location : strip
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripToEmpty_String(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::strip to ( if (x != null) null else throw new RuntimeException ) → KILLED

798

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

799

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

802

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

803

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

804

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

806

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

807

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

809

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

810

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

813

1.1
Location : stripStart
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripStart_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

843

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

844

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

847

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

848

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

3.3
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

849

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from -1 to 1 → KILLED

851

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

852

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripEnd_StringString(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

854

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

855

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

858

1.1
Location : stripEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testLANG666(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

883

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

913

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

2.2
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

914

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

917

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
changed conditional boundary → KILLED

2.2
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

920

1.1
Location : stripAll
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAll(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

942

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

943

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED

947

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
removed call to org/apache/commons/lang3/StringUtils::convertRemainingAccentCharacters → KILLED

949

1.1
Location : stripAccents
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::stripAccents to ( if (x != null) null else throw new RuntimeException ) → KILLED

953

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
changed conditional boundary → KILLED

2.2
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

954

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

957

1.1
Location : convertRemainingAccentCharacters
Killed by : org.apache.commons.lang3.StringUtilsTrimStripTest.testStripAccents(org.apache.commons.lang3.StringUtilsTrimStripTest)
negated conditional → KILLED

988

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

989

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

991

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

992

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

994

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

995

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

997

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

998

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsOnStrings(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1000

1.1
Location : equals
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEquals(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1025

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1026

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1027

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1028

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1029

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1030

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1032

1.1
Location : equalsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1071

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1109

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1110

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1112

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1113

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1115

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1116

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1118

1.1
Location : compare
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompare_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1159

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1202

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1203

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1205

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1206

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1208

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1209

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1211

1.1
Location : compareIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testCompareIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1234

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1235

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1236

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1237

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1241

1.1
Location : equalsAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAny(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1265

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1266

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1267

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1268

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1272

1.1
Location : equalsAnyIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testEqualsAnyIgnoreCase(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1298

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1299

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1301

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1331

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1332

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1334

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1362

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1363

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1365

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1402

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1403

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1405

1.1
Location : indexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1459

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1478

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

3.3
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1479

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1481

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1482

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1487

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1489

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1490

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer subtraction with addition → KILLED

1492

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

1494

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1495

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1497

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

1498

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1499

1.1
Location : ordinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLANG1241_1(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1528

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1564

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1565

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1567

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1570

1.1
Location : indexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

1571

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1572

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1574

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1575

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1577

1.1
Location : indexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfIgnoreCase
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3.3
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1578

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1579

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1582

1.1
Location : indexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1608

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1609

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1611

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_char(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1646

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1647

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1649

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_charInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1676

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1677

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1679

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1717

1.1
Location : lastOrdinalIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastOrdinalIndexOf(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1757

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1758

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1760

1.1
Location : lastIndexOf
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOf_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1787

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1788

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1790

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1826

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1827

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1829

1.1
Location : lastIndexOfIgnoreCase
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : lastIndexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1830

1.1
Location : lastIndexOfIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1832

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1833

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1835

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1836

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1839

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from -1 to 1 → KILLED

3.3
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1840

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1841

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_String(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1844

1.1
Location : lastIndexOfIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfIgnoreCase_StringInt(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1870

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1871

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1873

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

3.3
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_Char(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1899

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1900

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1902

1.1
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

3.3
Location : contains
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContains_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1930

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1931

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1934

1.1
Location : containsIgnoreCase
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1935

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsIgnoreCase
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3.3
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1936

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1937

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1940

1.1
Location : containsIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsIgnoreCase_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1955

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1956

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1959

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1960

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

1961

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1964

1.1
Location : containsWhitespace
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsWhitespace(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1993

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

1994

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

1997

1.1
Location : indexOfAny
Killed by : none
Replaced integer subtraction with addition → SURVIVED

1999

1.1
Location : indexOfAny
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2000

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2002

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2003

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2004

1.1
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

5.5
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2006

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2007

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2010

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2015

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2042

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2043

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2045

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2076

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2077

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2081

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2082

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2083

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2085

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2086

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2087

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2088

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2090

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2092

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

5.5
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2093

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2097

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2102

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringCharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2137

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2138

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2140

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringString(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2169

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2170

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2172

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2173

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2174

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2177

1.1
Location : containsAny
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsAny_StringStringArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2207

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2208

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2211

1.1
Location : indexOfAnyBut
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2213

1.1
Location : indexOfAnyBut
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2215

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2217

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2218

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2219

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

5.5
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2220

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2228

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringCharArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2230

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2257

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2258

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2261

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2263

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2264

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : none
Replaced integer addition with subtraction → SURVIVED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

4.4
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2265

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Replaced integer addition with subtraction → KILLED

2266

1.1
Location : indexOfAnyBut
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

3.3
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2267

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2270

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2271

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringString(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2275

1.1
Location : indexOfAnyBut
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAnyBut_StringStringWithSupplementaryChars(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2304

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2305

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2307

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2308

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2310

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2311

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2313

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2340

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2341

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2343

1.1
Location : containsOnly
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsOnly_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2372

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2373

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2376

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2378

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer subtraction with addition → KILLED

2379

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2381

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2382

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2383

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2384

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2386

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2388

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
changed conditional boundary → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithBadSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

5.5
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2389

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArrayWithSupplementaryChars(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2393

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_CharArray(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2398

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsTest.testEscapeSurrogatePairs(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2425

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2.2
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
negated conditional → KILLED

2426

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2428

1.1
Location : containsNone
Killed by : org.apache.commons.lang3.StringUtilsContainsTest.testContainsNone_String(org.apache.commons.lang3.StringUtilsContainsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2461

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2462

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2470

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2471

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2475

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2479

1.1
Location : indexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2484

1.1
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : indexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2514

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2515

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2520

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
changed conditional boundary → KILLED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2521

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2525

1.1
Location : lastIndexOfAny
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
negated conditional → KILLED

2529

1.1
Location : lastIndexOfAny
Killed by : org.apache.commons.lang3.StringUtilsEqualsIndexOfTest.testLastIndexOfAny_StringStringArray(org.apache.commons.lang3.StringUtilsEqualsIndexOfTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

2559

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2560

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2564

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2565

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2568

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2571

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2572

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2575

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2614

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2615

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2619

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2620

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2622

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2623

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2627

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2632

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2633

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2636

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstring_StringIntInt(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2639

1.1
Location : substring
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2643

1.1
Location : substring
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substring to ( if (x != null) null else throw new RuntimeException ) → KILLED

2669

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2670

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2672

1.1
Location : left
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2673

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2675

1.1
Location : left
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2676

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2678

1.1
Location : left
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testLeft_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::left to ( if (x != null) null else throw new RuntimeException ) → KILLED

2702

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2703

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2705

1.1
Location : right
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2706

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2708

1.1
Location : right
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2709

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2711

1.1
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : right
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testRight_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::right to ( if (x != null) null else throw new RuntimeException ) → KILLED

2740

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2741

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2743

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

4.4
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2744

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2746

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2749

1.1
Location : mid
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2750

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2752

1.1
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : mid
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testMid_String(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::mid to ( if (x != null) null else throw new RuntimeException ) → KILLED

2785

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2786

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2788

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2789

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2792

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2793

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2795

1.1
Location : substringBefore
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBefore_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBefore to ( if (x != null) null else throw new RuntimeException ) → KILLED

2827

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2828

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2830

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2831

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2834

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2835

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2837

1.1
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringAfter
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfter_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfter to ( if (x != null) null else throw new RuntimeException ) → KILLED

2868

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2869

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2872

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2873

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2875

1.1
Location : substringBeforeLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBeforeLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBeforeLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2908

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2909

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2911

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2912

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2915

1.1
Location : substringAfterLast
Killed by : none
Replaced integer subtraction with addition → SURVIVED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2916

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2918

1.1
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringAfterLast
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringAfterLast_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringAfterLast to ( if (x != null) null else throw new RuntimeException ) → KILLED

2945

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2976

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2977

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2980

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2981

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2982

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2983

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

2986

1.1
Location : substringBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringBetween_StringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3012

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3.3
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3013

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3016

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3017

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3023

1.1
Location : substringsBetween
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substringsBetween
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3025

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3028

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3030

1.1
Location : substringsBetween
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3034

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
Replaced integer addition with subtraction → KILLED

3036

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

3037

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3039

1.1
Location : substringsBetween
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testSubstringsBetween_StringStringString(org.apache.commons.lang3.StringUtilsSubstringTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::substringsBetween to ( if (x != null) null else throw new RuntimeException ) → KILLED

3070

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3098

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3127

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3161

1.1
Location : split
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::split to ( if (x != null) null else throw new RuntimeException ) → KILLED

3188

1.1
Location : splitByWholeSeparator
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED

3219

1.1
Location : splitByWholeSeparator
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparator to ( if (x != null) null else throw new RuntimeException ) → KILLED

3248

1.1
Location : splitByWholeSeparatorPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3281

1.1
Location : splitByWholeSeparatorPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3300

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3301

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3306

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3307

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3310

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3312

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3321

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
changed conditional boundary → TIMED_OUT

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3324

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
changed conditional boundary → TIMED_OUT

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3325

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBoolean(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3326

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3328

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3339

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3343

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3344

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3345

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeSeparatorPreserveAllTokens_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3352

1.1
Location : splitByWholeSeparatorWorker
Killed by : none
Replaced integer addition with subtraction → TIMED_OUT

3361

1.1
Location : splitByWholeSeparatorWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByWholeString_StringStringBooleanInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByWholeSeparatorWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3390

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3426

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3444

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3445

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3448

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3449

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3455

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3456

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3457

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3462

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3467

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3469

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3472

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3509

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3549

1.1
Location : splitPreserveAllTokens
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitPreserveAllTokens to ( if (x != null) null else throw new RuntimeException ) → KILLED

3571

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3572

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3575

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3576

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3583

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3585

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3586

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3587

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3589

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3596

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3601

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3603

1.1
Location : splitWorker
Killed by : none
negated conditional → SURVIVED

3606

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3607

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3608

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3610

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3617

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3622

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3626

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3627

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3628

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplit_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3630

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3637

1.1
Location : splitWorker
Killed by : none
Changed increment from 1 to -1 → TIMED_OUT

3642

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_StringString_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3645

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3648

1.1
Location : splitWorker
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitPreserveAllTokens_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitWorker to ( if (x != null) null else throw new RuntimeException ) → KILLED

3671

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3699

1.1
Location : splitByCharacterTypeCamelCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterTypeCamelCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

3717

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3718

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3720

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3721

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3727

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3729

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3732

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3733

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3734

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterTypeCamelCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3735

1.1
Location : splitByCharacterType
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3739

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3744

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3745

1.1
Location : splitByCharacterType
Killed by : org.apache.commons.lang3.StringUtilsTest.testSplitByCharacterType(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::splitByCharacterType to ( if (x != null) null else throw new RuntimeException ) → KILLED

3774

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_Objectarray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3800

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3801

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3803

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3832

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3833

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3835

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3864

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3865

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3867

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3896

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3897

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3899

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3928

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3929

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3931

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3960

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3961

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3963

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3992

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3993

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

3995

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4024

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4025

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4027

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4058

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4059

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4061

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4062

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4063

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4065

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4066

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4067

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4070

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4074

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayCharSeparator(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4109

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4110

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4112

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4113

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4114

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4116

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4117

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4118

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4123

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfLongs(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4158

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4159

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4161

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4162

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4163

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4165

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4166

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4167

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4172

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfInts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4207

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4208

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4210

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4211

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4212

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4214

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4215

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4216

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4221

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfBytes(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4256

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4257

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4259

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4260

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4261

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4263

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4264

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4265

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4270

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfShorts(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4305

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4306

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4308

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4309

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4310

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4312

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4313

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4314

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4319

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfChars(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4354

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4355

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4357

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4358

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4359

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4361

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4362

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4363

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4368

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfDoubles(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4403

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4404

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4406

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4407

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4408

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4410

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4411

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4412

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4417

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayOfFloats(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4445

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4446

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4448

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4487

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4488

1.1
Location : join
Killed by : none
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

4490

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4496

1.1
Location : join
Killed by : none
Replaced integer subtraction with addition → SURVIVED

4497

1.1
Location : join
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4498

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4501

1.1
Location : join
Killed by : none
Replaced integer multiplication with division → SURVIVED

4503

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4504

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4507

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4511

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_ArrayString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4531

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4532

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4534

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4535

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4538

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4540

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4545

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4549

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4552

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4557

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4576

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4577

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IteratorString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4579

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4580

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4583

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4585

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4590

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4594

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4595

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4599

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4603

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4621

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4622

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4624

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4642

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4643

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4645

1.1
Location : join
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoin_IterableString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::join to ( if (x != null) null else throw new RuntimeException ) → KILLED

4669

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWithThrowsException(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4678

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4682

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4687

1.1
Location : joinWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testJoinWith(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::joinWith to ( if (x != null) null else throw new RuntimeException ) → KILLED

4707

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4708

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4713

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4714

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4715

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4718

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4719

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4721

1.1
Location : deleteWhitespace
Killed by : org.apache.commons.lang3.StringUtilsTest.testDeleteWhitespace_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::deleteWhitespace to ( if (x != null) null else throw new RuntimeException ) → KILLED

4751

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4752

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4754

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4755

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4757

1.1
Location : removeStart
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStart(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStart to ( if (x != null) null else throw new RuntimeException ) → KILLED

4786

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4787

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4789

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4790

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4792

1.1
Location : removeStartIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeStartIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4820

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4821

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4823

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4824

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4826

1.1
Location : removeEnd
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEnd(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEnd to ( if (x != null) null else throw new RuntimeException ) → KILLED

4856

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4857

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4859

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4860

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4862

1.1
Location : removeEndIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeEndIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4889

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4890

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4892

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4929

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4930

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4932

1.1
Location : removeIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

4955

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4956

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

4960

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4961

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4962

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4965

1.1
Location : remove
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemove_char(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::remove to ( if (x != null) null else throw new RuntimeException ) → KILLED

5012

1.1
Location : removeAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5058

1.1
Location : removeFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removeFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5087

1.1
Location : replaceOnce
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnce to ( if (x != null) null else throw new RuntimeException ) → KILLED

5116

1.1
Location : replaceOnceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnceIgnoreCase_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceOnceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5159

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplacePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplacePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplacePattern(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5160

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplacePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5162

1.1
Location : replacePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplacePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replacePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5196

1.1
Location : removePattern
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemovePattern(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::removePattern to ( if (x != null) null else throw new RuntimeException ) → KILLED

5248

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5249

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5251

1.1
Location : replaceAll
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceAll(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceAll to ( if (x != null) null else throw new RuntimeException ) → KILLED

5301

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5302

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5304

1.1
Location : replaceFirst
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceFirst(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceFirst to ( if (x != null) null else throw new RuntimeException ) → KILLED

5331

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5359

1.1
Location : replaceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceIgnoreCase_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5391

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5426

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5427

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5430

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5436

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5437

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5440

1.1
Location : replace
Killed by : none
Replaced integer subtraction with addition → SURVIVED

5441

1.1
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5442

1.1
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replace
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : replace
Killed by : none
Replaced integer multiplication with division → SURVIVED

4.4
Location : replace
Killed by : none
negated conditional → SURVIVED

5.5
Location : replace
Killed by : none
negated conditional → SURVIVED

5443

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringEscapeUtilsTest.testEscapeCsvString(org.apache.commons.lang3.StringEscapeUtilsTest)
Replaced integer addition with subtraction → KILLED

5444

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5446

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5447

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

2.2
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5453

1.1
Location : replace
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceOnce_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replace to ( if (x != null) null else throw new RuntimeException ) → KILLED

5486

1.1
Location : replaceIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveIgnoreCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

5529

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5577

1.1
Location : replaceEachRepeatedly
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5578

1.1
Location : replaceEachRepeatedly
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEachRepeatedly to ( if (x != null) null else throw new RuntimeException ) → KILLED

5637

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6.6
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5639

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5643

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5652

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5669

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5670

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5671

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5677

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5680

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5689

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5690

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5699

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

5700

1.1
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5703

1.1
Location : replaceEach
Killed by : none
Replaced integer subtraction with addition → SURVIVED

5704

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : none
negated conditional → SURVIVED

5705

1.1
Location : replaceEach
Killed by : none
Replaced integer multiplication with division → SURVIVED

2.2
Location : replaceEach
Killed by : none
Replaced integer addition with subtraction → SURVIVED

5709

1.1
Location : replaceEach
Killed by : none
Replaced integer division with multiplication → SURVIVED

5711

1.1
Location : replaceEach
Killed by : none
Replaced integer addition with subtraction → SURVIVED

5713

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5715

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5720

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5727

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5728

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5729

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5735

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5738

1.1
Location : replaceEach
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5748

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5752

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5753

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5756

1.1
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : replaceEach
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplace_StringStringArrayStringArrayBoolean(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceEach to ( if (x != null) null else throw new RuntimeException ) → KILLED

5782

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringCharChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5783

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringCharChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5785

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringCharChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5825

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5826

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5828

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5835

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5838

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5840

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5847

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5848

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5850

1.1
Location : replaceChars
Killed by : org.apache.commons.lang3.StringUtilsTest.testReplaceChars_StringStringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::replaceChars to ( if (x != null) null else throw new RuntimeException ) → KILLED

5885

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5886

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED

5888

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5892

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5895

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5898

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5901

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5904

1.1
Location : overlay
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5909

1.1
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : overlay
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5.5
Location : overlay
Killed by : org.apache.commons.lang3.StringUtilsTest.testOverlay_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::overlay to ( if (x != null) null else throw new RuntimeException ) → KILLED

5944

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5945

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5948

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5950

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5951

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5953

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5956

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

5959

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5960

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5961

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

5963

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5964

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

5966

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

5998

1.1
Location : chomp
Killed by : org.apache.commons.lang3.StringUtilsTest.testChomp(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chomp to ( if (x != null) null else throw new RuntimeException ) → KILLED

6027

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6028

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6031

1.1
Location : chop
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6032

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6034

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6037

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6038

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6040

1.1
Location : chop
Killed by : org.apache.commons.lang3.StringUtilsTest.testChop(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::chop to ( if (x != null) null else throw new RuntimeException ) → KILLED

6069

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6070

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6072

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6073

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6076

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6077

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6079

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : repeat
Killed by : none
negated conditional → SURVIVED

6080

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6083

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer multiplication with division → KILLED

6086

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6091

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

3.3
Location : repeat
Killed by : none
Changed increment from -1 to 1 → TIMED_OUT

4.4
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer multiplication with division → KILLED

5.5
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6.6
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6093

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6095

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6098

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6101

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6126

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6127

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6131

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6157

1.1
Location : repeat
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6158

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6161

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from -1 to 1 → KILLED

3.3
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6164

1.1
Location : repeat
Killed by : org.apache.commons.lang3.StringUtilsTest.testRepeat_CharInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::repeat to ( if (x != null) null else throw new RuntimeException ) → KILLED

6187

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6212

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6213

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6215

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6216

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6217

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6219

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6220

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6222

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6249

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6250

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6252

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6257

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6258

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6259

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6261

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6262

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6265

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6266

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6267

1.1
Location : rightPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6268

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6272

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6273

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

6275

1.1
Location : rightPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testRightPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rightPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6299

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6324

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6325

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6327

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6328

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6329

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6331

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6332

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6334

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6361

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6362

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6364

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6369

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6370

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6371

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6373

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6374

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6377

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6378

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6379

1.1
Location : leftPad
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6380

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6384

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6385

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

6387

1.1
Location : leftPad
Killed by : org.apache.commons.lang3.StringUtilsTest.testLeftPad_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::leftPad to ( if (x != null) null else throw new RuntimeException ) → KILLED

6403

1.1
Location : length
Killed by : org.apache.commons.lang3.StringUtilsTest.testLengthStringBuffer(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : length
Killed by : org.apache.commons.lang3.StringUtilsTest.testLengthStringBuffer(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6432

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6460

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6461

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6464

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6465

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6466

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6468

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6470

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6500

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6501

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6503

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6507

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

6508

1.1
Location : center
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6509

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6511

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6513

1.1
Location : center
Killed by : org.apache.commons.lang3.StringUtilsTest.testCenter_StringIntString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::center to ( if (x != null) null else throw new RuntimeException ) → KILLED

6538

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6539

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6541

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6561

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6562

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6564

1.1
Location : upperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testUpperCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::upperCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6587

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6588

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6590

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6610

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6611

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6613

1.1
Location : lowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testLowerCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::lowerCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6639

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6640

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6645

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6647

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6652

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6653

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6655

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6656

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6658

1.1
Location : capitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::capitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6684

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6685

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6690

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6692

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6697

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6698

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6700

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6701

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6703

1.1
Location : uncapitalize
Killed by : org.apache.commons.lang3.StringUtilsTest.testReCapitalize(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::uncapitalize to ( if (x != null) null else throw new RuntimeException ) → KILLED

6734

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6735

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6741

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6744

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6746

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6748

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

6753

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

6754

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6756

1.1
Location : swapCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testSwapCase_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::swapCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

6782

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

2.2
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6783

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6787

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6788

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

6789

1.1
Location : countMatches
Killed by : none
Replaced integer addition with subtraction → TIMED_OUT

6791

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_String(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6814

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6815

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6819

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
changed conditional boundary → KILLED

2.2
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6820

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
negated conditional → KILLED

6821

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
Changed increment from 1 to -1 → KILLED

6824

1.1
Location : countMatches
Killed by : org.apache.commons.lang3.StringUtilsSubstringTest.testCountMatches_char(org.apache.commons.lang3.StringUtilsSubstringTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6850

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6851

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6854

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6855

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6856

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6859

1.1
Location : isAlpha
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlpha(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6885

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6886

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6889

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6890

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6891

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6894

1.1
Location : isAlphaSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphaspace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6920

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6921

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6924

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6925

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6926

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6929

1.1
Location : isAlphanumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6955

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6956

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6959

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6960

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6961

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6964

1.1
Location : isAlphanumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAlphanumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6994

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6995

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

6998

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

6999

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7000

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7003

1.1
Location : isAsciiPrintable
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsAsciiPrintable_String(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7038

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7039

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7042

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7043

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7044

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7047

1.1
Location : isNumeric
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumeric(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7077

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7078

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7081

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7082

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

2.2
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7083

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7086

1.1
Location : isNumericSpace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsNumericSpace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7112

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7113

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7116

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
changed conditional boundary → KILLED

2.2
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7117

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
negated conditional → KILLED

7118

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7121

1.1
Location : isWhitespace
Killed by : org.apache.commons.lang3.StringUtilsIsTest.testIsWhitespace(org.apache.commons.lang3.StringUtilsIsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7147

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7148

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7151

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7152

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7153

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7156

1.1
Location : isAllLowerCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllLowerCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7182

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7183

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7186

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7187

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7188

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7191

1.1
Location : isAllUpperCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testIsAllUpperCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7213

1.1
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED

7234

1.1
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultString
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefault_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultString to ( if (x != null) null else throw new RuntimeException ) → KILLED

7258

1.1
Location : defaultIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuilders(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultIfBlank
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfBlank_StringBuilders(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfBlank to ( if (x != null) null else throw new RuntimeException ) → KILLED

7280

1.1
Location : defaultIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : defaultIfEmpty
Killed by : org.apache.commons.lang3.StringUtilsTest.testDefaultIfEmpty_StringBuffers(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::defaultIfEmpty to ( if (x != null) null else throw new RuntimeException ) → KILLED

7312

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7313

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7317

1.1
Location : rotate
Killed by : none
Replaced integer modulus with multiplication → SURVIVED

2.2
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7318

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7322

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
removed negation → KILLED

2.2
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

7325

1.1
Location : rotate
Killed by : org.apache.commons.lang3.StringUtilsTest.testRotate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::rotate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7345

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7346

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED

7348

1.1
Location : reverse
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverse_String(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverse to ( if (x != null) null else throw new RuntimeException ) → KILLED

7371

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7372

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED

7377

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
removed call to org/apache/commons/lang3/ArrayUtils::reverse → KILLED

7378

1.1
Location : reverseDelimited
Killed by : org.apache.commons.lang3.StringUtilsTest.testReverseDelimited_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::reverseDelimited to ( if (x != null) null else throw new RuntimeException ) → KILLED

7416

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7456

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7496

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7537

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7538

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7542

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7543

1.1
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

7545

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7548

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7549

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7551

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7554

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7555

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : none
Replaced integer subtraction with addition → SURVIVED

7557

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7558

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7560

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7563

1.1
Location : abbreviate
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : abbreviate
Killed by : none
Replaced integer addition with subtraction → SURVIVED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7564

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7566

1.1
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : abbreviate
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviate_StringStringIntInt(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviate to ( if (x != null) null else throw new RuntimeException ) → KILLED

7599

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7600

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7603

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

3.3
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7604

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7607

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7608

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer modulus with multiplication → KILLED

3.3
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7609

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7616

1.1
Location : abbreviateMiddle
Killed by : org.apache.commons.lang3.StringUtilsTest.testAbbreviateMiddle(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::abbreviateMiddle to ( if (x != null) null else throw new RuntimeException ) → KILLED

7650

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7651

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7653

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7654

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7657

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7658

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7660

1.1
Location : difference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifference_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::difference to ( if (x != null) null else throw new RuntimeException ) → KILLED

7689

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7690

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7692

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7693

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7696

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

4.4
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

5.5
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7697

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7701

1.1
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7702

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7704

1.1
Location : indexOfDifference
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

7740

1.1
Location : indexOfDifference
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7741

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7752

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7753

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7764

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7765

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7769

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7770

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7775

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7777

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7778

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7783

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7788

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7792

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7794

1.1
Location : indexOfDifference
Killed by : org.apache.commons.lang3.StringUtilsTest.testDifferenceAt_StringArray(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7831

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7832

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7835

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7837

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7838

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7840

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7841

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7843

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7846

1.1
Location : getCommonPrefix
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetCommonPrefix_StringArray(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::getCommonPrefix to ( if (x != null) null else throw new RuntimeException ) → KILLED

7885

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7892

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7893

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7894

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7895

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7898

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

7907

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7917

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

7921

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7923

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

7926

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7928

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7930

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

7935

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

7971

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_NullStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringNullInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

7974

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringNegativeInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8026

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8027

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8028

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8029

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8032

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8033

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8036

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

8045

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8046

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8050

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8051

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : none
negated conditional → SURVIVED

8056

1.1
Location : getLevenshteinDistance
Killed by : none
removed call to java/util/Arrays::fill → SURVIVED

8057

1.1
Location : getLevenshteinDistance
Killed by : none
removed call to java/util/Arrays::fill → SURVIVED

8060

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8061

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8065

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8066

1.1
Location : getLevenshteinDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getLevenshteinDistance
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

4.4
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8069

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8070

1.1
Location : getLevenshteinDistance
Killed by : none
replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE

8074

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8075

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8079

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8080

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8082

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8085

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

3.3
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8097

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8098

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8100

1.1
Location : getLevenshteinDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetLevenshteinDistance_StringStringInt(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8140

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8146

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8147

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED

8149

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

4.4
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

6.6
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

8150

1.1
Location : getJaroWinklerDistance
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

4.4
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

6.6
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8151

1.1
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

2.2
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerDistance → KILLED

8189

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_NullString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringNull(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8195

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8196

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED

8198

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

4.4
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

6.6
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

8199

1.1
Location : getJaroWinklerSimilarity
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

4.4
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double subtraction with addition → KILLED

5.5
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

6.6
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double addition with subtraction → KILLED

7.7
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8200

1.1
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double multiplication with division → KILLED

2.2
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced double division with multiplication → KILLED

3.3
Location : getJaroWinklerSimilarity
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerSimilarity_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of double value with -(x + 1) for org/apache/commons/lang3/StringUtils::getJaroWinklerSimilarity → KILLED

8205

1.1
Location : matches
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8212

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8214

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
removed call to java/util/Arrays::fill → KILLED

8217

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8219

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

4.4
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

5.5
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

6.6
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8220

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8223

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8230

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8231

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8233

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8236

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8237

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8239

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8243

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8244

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8245

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8249

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8250

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8251

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8256

1.1
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer division with multiplication → KILLED

2.2
Location : matches
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetJaroWinklerDistance_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::matches to ( if (x != null) null else throw new RuntimeException ) → KILLED

8286

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance_StringNullLoclae(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8288

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8309

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8313

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8316

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8318

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8322

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8323

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 2 to -2 → KILLED

8335

1.1
Location : getFuzzyDistance
Killed by : org.apache.commons.lang3.StringUtilsTest.testGetFuzzyDistance(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8364

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8390

1.1
Location : startsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveStartIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8405

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8406

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithIgnoreCase(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

3.3
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8408

1.1
Location : startsWith
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8409

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8411

1.1
Location : startsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8437

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

2.2
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8438

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8440

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
changed conditional boundary → KILLED

2.2
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8441

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8442

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8445

1.1
Location : startsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testStartsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8476

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8503

1.1
Location : endsWithIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testRemoveEndIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8518

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8519

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWith(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

3.3
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8521

1.1
Location : endsWith
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8522

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8524

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

8525

1.1
Location : endsWith
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8572

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8573

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8580

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8583

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8585

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8588

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8589

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

8591

1.1
Location : normalizeSpace
Killed by : none
Changed increment from 1 to -1 → SURVIVED

8594

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8595

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8597

1.1
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : normalizeSpace
Killed by : none
Replaced integer subtraction with addition → SURVIVED

3.3
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

4.4
Location : normalizeSpace
Killed by : org.apache.commons.lang3.StringUtilsTest.testNormalizeSpace(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::normalizeSpace to ( if (x != null) null else throw new RuntimeException ) → KILLED

8622

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

2.2
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8623

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8625

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
changed conditional boundary → KILLED

2.2
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8626

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
negated conditional → KILLED

8627

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8630

1.1
Location : endsWithAny
Killed by : org.apache.commons.lang3.StringUtilsStartsEndsWithTest.testEndsWithAny(org.apache.commons.lang3.StringUtilsStartsEndsWithTest)
replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED

8645

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8646

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8648

1.1
Location : appendIfMissing
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8649

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8650

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8651

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8655

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8693

1.1
Location : appendIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8731

1.1
Location : appendIfMissingIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testAppendIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::appendIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

8746

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8747

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8749

1.1
Location : prependIfMissing
Killed by : none
changed conditional boundary → SURVIVED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8750

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8751

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8752

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8756

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8794

1.1
Location : prependIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissing(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8832

1.1
Location : prependIfMissingIgnoreCase
Killed by : org.apache.commons.lang3.StringUtilsTest.testPrependIfMissingIgnoreCase(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::prependIfMissingIgnoreCase to ( if (x != null) null else throw new RuntimeException ) → KILLED

8852

1.1
Location : toString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : toString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toString to ( if (x != null) null else throw new RuntimeException ) → KILLED

8869

1.1
Location : toEncodedString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToEncodedString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : toEncodedString
Killed by : org.apache.commons.lang3.StringUtilsTest.testToEncodedString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toEncodedString to ( if (x != null) null else throw new RuntimeException ) → KILLED

8895

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8896

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8899

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8933

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8934

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8937

1.1
Location : wrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

8966

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8967

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

8969

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

8970

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8974

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

8977

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9010

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9011

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9013

1.1
Location : wrapIfMissing
Killed by : none
Replaced integer addition with subtraction → SURVIVED

2.2
Location : wrapIfMissing
Killed by : none
Replaced integer addition with subtraction → SURVIVED

9014

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9018

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9021

1.1
Location : wrapIfMissing
Killed by : org.apache.commons.lang3.StringUtilsTest.testWrapIfMissing_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::wrapIfMissing to ( if (x != null) null else throw new RuntimeException ) → KILLED

9050

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9051

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9054

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9058

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9059

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9063

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringString(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9091

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9092

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9095

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

2.2
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

3.3
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9097

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
Replaced integer subtraction with addition → KILLED

9098

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9099

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9103

1.1
Location : unwrap
Killed by : org.apache.commons.lang3.StringUtilsTest.testUnwrap_StringChar(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::unwrap to ( if (x != null) null else throw new RuntimeException ) → KILLED

9124

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9125

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED

9127

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9128

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED

9134

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
changed conditional boundary → KILLED

2.2
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
Changed increment from 1 to -1 → KILLED

3.3
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
negated conditional → KILLED

9136

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
Replaced integer addition with subtraction → KILLED

9138

1.1
Location : toCodePoints
Killed by : org.apache.commons.lang3.StringUtilsTest.testToCodePoints(org.apache.commons.lang3.StringUtilsTest)
mutated return of Object value for org/apache/commons/lang3/StringUtils::toCodePoints to ( if (x != null) null else throw new RuntimeException ) → KILLED

Active mutators

Tests examined


Report generated by PIT 1.1.10